Lines Matching refs:oa_config

380 	struct i915_oa_config *oa_config;  member
390 struct i915_oa_config *oa_config = in i915_oa_config_release() local
391 container_of(ref, typeof(*oa_config), ref); in i915_oa_config_release()
393 kfree(oa_config->flex_regs); in i915_oa_config_release()
394 kfree(oa_config->b_counter_regs); in i915_oa_config_release()
395 kfree(oa_config->mux_regs); in i915_oa_config_release()
397 kfree_rcu(oa_config, rcu); in i915_oa_config_release()
403 struct i915_oa_config *oa_config; in i915_perf_get_oa_config() local
406 oa_config = idr_find(&perf->metrics_idr, metrics_set); in i915_perf_get_oa_config()
407 if (oa_config) in i915_perf_get_oa_config()
408 oa_config = i915_oa_config_get(oa_config); in i915_perf_get_oa_config()
411 return oa_config; in i915_perf_get_oa_config()
416 i915_oa_config_put(oa_bo->oa_config); in free_oa_config_bo()
1562 i915_oa_config_put(stream->oa_config); in free_oa_configs()
2114 struct i915_oa_config *oa_config) in alloc_oa_config_buffer() argument
2127 config_length += num_lri_dwords(oa_config->mux_regs_len); in alloc_oa_config_buffer()
2128 config_length += num_lri_dwords(oa_config->b_counter_regs_len); in alloc_oa_config_buffer()
2129 config_length += num_lri_dwords(oa_config->flex_regs_len); in alloc_oa_config_buffer()
2152 oa_config->mux_regs, in alloc_oa_config_buffer()
2153 oa_config->mux_regs_len); in alloc_oa_config_buffer()
2155 oa_config->b_counter_regs, in alloc_oa_config_buffer()
2156 oa_config->b_counter_regs_len); in alloc_oa_config_buffer()
2158 oa_config->flex_regs, in alloc_oa_config_buffer()
2159 oa_config->flex_regs_len); in alloc_oa_config_buffer()
2179 oa_bo->oa_config = i915_oa_config_get(oa_config); in alloc_oa_config_buffer()
2201 get_oa_vma(struct i915_perf_stream *stream, struct i915_oa_config *oa_config) in get_oa_vma() argument
2210 if (oa_bo->oa_config == oa_config && in get_oa_vma()
2211 memcmp(oa_bo->oa_config->uuid, in get_oa_vma()
2212 oa_config->uuid, in get_oa_vma()
2213 sizeof(oa_config->uuid)) == 0) in get_oa_vma()
2217 oa_bo = alloc_oa_config_buffer(stream, oa_config); in get_oa_vma()
2227 struct i915_oa_config *oa_config, in emit_oa_config() argument
2236 vma = get_oa_vma(stream, oa_config); in emit_oa_config()
2323 stream->oa_config, oa_context(stream), in hsw_enable_metric_set()
2339 static u32 oa_config_flex_reg(const struct i915_oa_config *oa_config, in oa_config_flex_reg() argument
2350 if (!oa_config) in oa_config_flex_reg()
2353 for (i = 0; i < oa_config->flex_regs_len; i++) { in oa_config_flex_reg()
2354 if (i915_mmio_reg_offset(oa_config->flex_regs[i].addr) == mmio) in oa_config_flex_reg()
2355 return oa_config->flex_regs[i].value; in oa_config_flex_reg()
2393 oa_config_flex_reg(stream->oa_config, flex_regs[i]); in gen8_update_reg_state_unlocked()
2676 const struct i915_oa_config *oa_config, in gen12_configure_all_contexts() argument
2693 const struct i915_oa_config *oa_config, in lrc_configure_all_contexts() argument
2726 regs[i].value = oa_config_flex_reg(oa_config, regs[i].reg); in lrc_configure_all_contexts()
2738 struct i915_oa_config *oa_config = stream->oa_config; in gen8_enable_metric_set() local
2775 ret = lrc_configure_all_contexts(stream, oa_config, active); in gen8_enable_metric_set()
2780 stream->oa_config, oa_context(stream), in gen8_enable_metric_set()
2797 struct i915_oa_config *oa_config = stream->oa_config; in gen12_enable_metric_set() local
2846 ret = gen12_configure_all_contexts(stream, oa_config, active); in gen12_enable_metric_set()
2862 stream->oa_config, oa_context(stream), in gen12_enable_metric_set()
3272 stream->oa_config = i915_perf_get_oa_config(perf, props->metrics_set); in i915_oa_stream_init()
3273 if (!stream->oa_config) { in i915_oa_stream_init()
3330 stream->oa_config->uuid); in i915_oa_stream_init()
3583 long ret = stream->oa_config->id; in i915_perf_config_locked()
3589 if (config != stream->oa_config) { in i915_perf_config_locked()
3603 config = xchg(&stream->oa_config, config); in i915_perf_config_locked()
4460 struct i915_oa_config *oa_config = in show_dynamic_id() local
4461 container_of(attr, typeof(*oa_config), sysfs_metric_id); in show_dynamic_id()
4463 return sprintf(buf, "%d\n", oa_config->id); in show_dynamic_id()
4467 struct i915_oa_config *oa_config) in create_dynamic_oa_sysfs_entry() argument
4469 sysfs_attr_init(&oa_config->sysfs_metric_id.attr); in create_dynamic_oa_sysfs_entry()
4470 oa_config->sysfs_metric_id.attr.name = "id"; in create_dynamic_oa_sysfs_entry()
4471 oa_config->sysfs_metric_id.attr.mode = S_IRUGO; in create_dynamic_oa_sysfs_entry()
4472 oa_config->sysfs_metric_id.show = show_dynamic_id; in create_dynamic_oa_sysfs_entry()
4473 oa_config->sysfs_metric_id.store = NULL; in create_dynamic_oa_sysfs_entry()
4475 oa_config->attrs[0] = &oa_config->sysfs_metric_id.attr; in create_dynamic_oa_sysfs_entry()
4476 oa_config->attrs[1] = NULL; in create_dynamic_oa_sysfs_entry()
4478 oa_config->sysfs_metric.name = oa_config->uuid; in create_dynamic_oa_sysfs_entry()
4479 oa_config->sysfs_metric.attrs = oa_config->attrs; in create_dynamic_oa_sysfs_entry()
4482 &oa_config->sysfs_metric); in create_dynamic_oa_sysfs_entry()
4503 struct i915_oa_config *oa_config, *tmp; in i915_perf_add_config_ioctl() local
4533 oa_config = kzalloc(sizeof(*oa_config), GFP_KERNEL); in i915_perf_add_config_ioctl()
4534 if (!oa_config) { in i915_perf_add_config_ioctl()
4540 oa_config->perf = perf; in i915_perf_add_config_ioctl()
4541 kref_init(&oa_config->ref); in i915_perf_add_config_ioctl()
4553 memcpy(oa_config->uuid, args->uuid, sizeof(args->uuid)); in i915_perf_add_config_ioctl()
4555 oa_config->mux_regs_len = args->n_mux_regs; in i915_perf_add_config_ioctl()
4567 oa_config->mux_regs = regs; in i915_perf_add_config_ioctl()
4569 oa_config->b_counter_regs_len = args->n_boolean_regs; in i915_perf_add_config_ioctl()
4581 oa_config->b_counter_regs = regs; in i915_perf_add_config_ioctl()
4589 oa_config->flex_regs_len = args->n_flex_regs; in i915_perf_add_config_ioctl()
4601 oa_config->flex_regs = regs; in i915_perf_add_config_ioctl()
4612 if (!strcmp(tmp->uuid, oa_config->uuid)) { in i915_perf_add_config_ioctl()
4620 err = create_dynamic_oa_sysfs_entry(perf, oa_config); in i915_perf_add_config_ioctl()
4628 oa_config->id = idr_alloc(&perf->metrics_idr, in i915_perf_add_config_ioctl()
4629 oa_config, 2, in i915_perf_add_config_ioctl()
4631 if (oa_config->id < 0) { in i915_perf_add_config_ioctl()
4634 err = oa_config->id; in i915_perf_add_config_ioctl()
4641 "Added config %s id=%i\n", oa_config->uuid, oa_config->id); in i915_perf_add_config_ioctl()
4643 return oa_config->id; in i915_perf_add_config_ioctl()
4648 i915_oa_config_put(oa_config); in i915_perf_add_config_ioctl()
4670 struct i915_oa_config *oa_config; in i915_perf_remove_config_ioctl() local
4689 oa_config = idr_find(&perf->metrics_idr, *arg); in i915_perf_remove_config_ioctl()
4690 if (!oa_config) { in i915_perf_remove_config_ioctl()
4697 GEM_BUG_ON(*arg != oa_config->id); in i915_perf_remove_config_ioctl()
4699 sysfs_remove_group(perf->metrics_kobj, &oa_config->sysfs_metric); in i915_perf_remove_config_ioctl()
4706 "Removed config %s id=%i\n", oa_config->uuid, oa_config->id); in i915_perf_remove_config_ioctl()
4708 i915_oa_config_put(oa_config); in i915_perf_remove_config_ioctl()