Lines Matching refs:oa_config
366 struct i915_oa_config *oa_config) in free_oa_config() argument
368 if (!PTR_ERR(oa_config->flex_regs)) in free_oa_config()
369 kfree(oa_config->flex_regs); in free_oa_config()
370 if (!PTR_ERR(oa_config->b_counter_regs)) in free_oa_config()
371 kfree(oa_config->b_counter_regs); in free_oa_config()
372 if (!PTR_ERR(oa_config->mux_regs)) in free_oa_config()
373 kfree(oa_config->mux_regs); in free_oa_config()
374 kfree(oa_config); in free_oa_config()
378 struct i915_oa_config *oa_config) in put_oa_config() argument
380 if (!atomic_dec_and_test(&oa_config->ref_count)) in put_oa_config()
383 free_oa_config(dev_priv, oa_config); in put_oa_config()
1374 put_oa_config(dev_priv, stream->oa_config); in i915_oa_stream_destroy()
1568 const struct i915_oa_config *oa_config) in hsw_enable_metric_set() argument
1584 config_oa_regs(dev_priv, oa_config->mux_regs, oa_config->mux_regs_len); in hsw_enable_metric_set()
1609 config_oa_regs(dev_priv, oa_config->b_counter_regs, in hsw_enable_metric_set()
1610 oa_config->b_counter_regs_len); in hsw_enable_metric_set()
1635 const struct i915_oa_config *oa_config) in gen8_update_reg_state_unlocked() argument
1670 if (oa_config) { in gen8_update_reg_state_unlocked()
1673 for (j = 0; j < oa_config->flex_regs_len; j++) { in gen8_update_reg_state_unlocked()
1674 if (i915_mmio_reg_offset(oa_config->flex_regs[j].addr) == mmio) { in gen8_update_reg_state_unlocked()
1675 value = oa_config->flex_regs[j].value; in gen8_update_reg_state_unlocked()
1691 const struct i915_oa_config *oa_config) in gen8_emit_oa_config() argument
1729 if (oa_config) { in gen8_emit_oa_config()
1732 for (j = 0; j < oa_config->flex_regs_len; j++) { in gen8_emit_oa_config()
1733 if (i915_mmio_reg_offset(oa_config->flex_regs[j].addr) == mmio) { in gen8_emit_oa_config()
1734 value = oa_config->flex_regs[j].value; in gen8_emit_oa_config()
1751 const struct i915_oa_config *oa_config) in gen8_switch_to_updated_kernel_context() argument
1766 ret = gen8_emit_oa_config(rq, oa_config); in gen8_switch_to_updated_kernel_context()
1812 const struct i915_oa_config *oa_config) in gen8_configure_all_contexts() argument
1822 ret = gen8_switch_to_updated_kernel_context(dev_priv, oa_config); in gen8_configure_all_contexts()
1863 gen8_update_reg_state_unlocked(ctx, regs, oa_config); in gen8_configure_all_contexts()
1873 const struct i915_oa_config *oa_config) in gen8_enable_metric_set() argument
1911 ret = gen8_configure_all_contexts(dev_priv, oa_config); in gen8_enable_metric_set()
1915 config_oa_regs(dev_priv, oa_config->mux_regs, oa_config->mux_regs_len); in gen8_enable_metric_set()
1917 config_oa_regs(dev_priv, oa_config->b_counter_regs, in gen8_enable_metric_set()
1918 oa_config->b_counter_regs_len); in gen8_enable_metric_set()
2168 ret = get_oa_config(dev_priv, props->metrics_set, &stream->oa_config); in i915_oa_stream_init()
2198 stream->oa_config); in i915_oa_stream_init()
2220 put_oa_config(dev_priv, stream->oa_config); in i915_oa_stream_init()
2243 gen8_update_reg_state_unlocked(ctx, reg_state, stream->oa_config); in i915_oa_init_reg_state()
3198 struct i915_oa_config *oa_config = in show_dynamic_id() local
3199 container_of(attr, typeof(*oa_config), sysfs_metric_id); in show_dynamic_id()
3201 return sprintf(buf, "%d\n", oa_config->id); in show_dynamic_id()
3205 struct i915_oa_config *oa_config) in create_dynamic_oa_sysfs_entry() argument
3207 sysfs_attr_init(&oa_config->sysfs_metric_id.attr); in create_dynamic_oa_sysfs_entry()
3208 oa_config->sysfs_metric_id.attr.name = "id"; in create_dynamic_oa_sysfs_entry()
3209 oa_config->sysfs_metric_id.attr.mode = S_IRUGO; in create_dynamic_oa_sysfs_entry()
3210 oa_config->sysfs_metric_id.show = show_dynamic_id; in create_dynamic_oa_sysfs_entry()
3211 oa_config->sysfs_metric_id.store = NULL; in create_dynamic_oa_sysfs_entry()
3213 oa_config->attrs[0] = &oa_config->sysfs_metric_id.attr; in create_dynamic_oa_sysfs_entry()
3214 oa_config->attrs[1] = NULL; in create_dynamic_oa_sysfs_entry()
3216 oa_config->sysfs_metric.name = oa_config->uuid; in create_dynamic_oa_sysfs_entry()
3217 oa_config->sysfs_metric.attrs = oa_config->attrs; in create_dynamic_oa_sysfs_entry()
3220 &oa_config->sysfs_metric); in create_dynamic_oa_sysfs_entry()
3241 struct i915_oa_config *oa_config, *tmp; in i915_perf_add_config_ioctl() local
3266 oa_config = kzalloc(sizeof(*oa_config), GFP_KERNEL); in i915_perf_add_config_ioctl()
3267 if (!oa_config) { in i915_perf_add_config_ioctl()
3272 atomic_set(&oa_config->ref_count, 1); in i915_perf_add_config_ioctl()
3283 memcpy(oa_config->uuid, args->uuid, sizeof(args->uuid)); in i915_perf_add_config_ioctl()
3285 oa_config->mux_regs_len = args->n_mux_regs; in i915_perf_add_config_ioctl()
3286 oa_config->mux_regs = in i915_perf_add_config_ioctl()
3292 if (IS_ERR(oa_config->mux_regs)) { in i915_perf_add_config_ioctl()
3294 err = PTR_ERR(oa_config->mux_regs); in i915_perf_add_config_ioctl()
3298 oa_config->b_counter_regs_len = args->n_boolean_regs; in i915_perf_add_config_ioctl()
3299 oa_config->b_counter_regs = in i915_perf_add_config_ioctl()
3305 if (IS_ERR(oa_config->b_counter_regs)) { in i915_perf_add_config_ioctl()
3307 err = PTR_ERR(oa_config->b_counter_regs); in i915_perf_add_config_ioctl()
3317 oa_config->flex_regs_len = args->n_flex_regs; in i915_perf_add_config_ioctl()
3318 oa_config->flex_regs = in i915_perf_add_config_ioctl()
3324 if (IS_ERR(oa_config->flex_regs)) { in i915_perf_add_config_ioctl()
3326 err = PTR_ERR(oa_config->flex_regs); in i915_perf_add_config_ioctl()
3339 if (!strcmp(tmp->uuid, oa_config->uuid)) { in i915_perf_add_config_ioctl()
3346 err = create_dynamic_oa_sysfs_entry(dev_priv, oa_config); in i915_perf_add_config_ioctl()
3353 oa_config->id = idr_alloc(&dev_priv->perf.metrics_idr, in i915_perf_add_config_ioctl()
3354 oa_config, 2, in i915_perf_add_config_ioctl()
3356 if (oa_config->id < 0) { in i915_perf_add_config_ioctl()
3358 err = oa_config->id; in i915_perf_add_config_ioctl()
3364 DRM_DEBUG("Added config %s id=%i\n", oa_config->uuid, oa_config->id); in i915_perf_add_config_ioctl()
3366 return oa_config->id; in i915_perf_add_config_ioctl()
3371 put_oa_config(dev_priv, oa_config); in i915_perf_add_config_ioctl()
3392 struct i915_oa_config *oa_config; in i915_perf_remove_config_ioctl() local
3409 oa_config = idr_find(&dev_priv->perf.metrics_idr, *arg); in i915_perf_remove_config_ioctl()
3410 if (!oa_config) { in i915_perf_remove_config_ioctl()
3416 GEM_BUG_ON(*arg != oa_config->id); in i915_perf_remove_config_ioctl()
3419 &oa_config->sysfs_metric); in i915_perf_remove_config_ioctl()
3423 DRM_DEBUG("Removed config %s id=%i\n", oa_config->uuid, oa_config->id); in i915_perf_remove_config_ioctl()
3425 put_oa_config(dev_priv, oa_config); in i915_perf_remove_config_ioctl()
3586 struct i915_oa_config *oa_config = p; in destroy_config() local
3588 put_oa_config(dev_priv, oa_config); in destroy_config()