Home
last modified time | relevance | path

Searched refs:hwe (Results 1 – 25 of 53) sorted by relevance

123

/linux-6.15/drivers/gpu/drm/xe/
H A Dxe_hw_engine.c298 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in xe_hw_engine_mmio_write32()
299 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in xe_hw_engine_mmio_write32()
318 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in xe_hw_engine_mmio_read32()
319 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in xe_hw_engine_mmio_read32()
508 hwe->gt = gt; in hw_engine_init_early()
520 hwe->eclass = &gt->eclass[hwe->class]; in hw_engine_init_early()
558 hwe->eclass->defaults = hwe->eclass->sched_props; in hw_engine_init_early()
561 xe_reg_sr_init(&hwe->reg_sr, hwe->name, gt_to_xe(gt)); in hw_engine_init_early()
619 hwe->exl_port = xe_execlist_port_create(xe, hwe); in hw_engine_init()
856 hwe->irq_handler(hwe, intr_vec); in xe_hw_engine_handle_irq()
[all …]
H A Dxe_hw_engine.h54 void xe_hw_engine_handle_irq(struct xe_hw_engine *hwe, u16 intr_vec);
55 void xe_hw_engine_enable_ring(struct xe_hw_engine *hwe);
59 xe_hw_engine_snapshot_capture(struct xe_hw_engine *hwe, struct xe_exec_queue *q);
61 void xe_hw_engine_print(struct xe_hw_engine *hwe, struct drm_printer *p);
62 void xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe);
64 bool xe_hw_engine_is_reserved(struct xe_hw_engine *hwe);
70 static inline bool xe_hw_engine_is_valid(struct xe_hw_engine *hwe) in xe_hw_engine_is_valid() argument
72 return hwe->name; in xe_hw_engine_is_valid()
76 u64 xe_hw_engine_read_timestamp(struct xe_hw_engine *hwe);
77 enum xe_force_wake_domains xe_hw_engine_to_fw_domain(struct xe_hw_engine *hwe);
[all …]
H A Dxe_rtp.c34 struct xe_hw_engine *hwe, in rule_matches() argument
99 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_matches()
111 match = r->match_func(gt, hwe); in rule_matches()
173 mmio_base = hwe->mmio_base; in rtp_process_one_sr()
184 struct xe_hw_engine **hwe, in rtp_get_context() argument
190 *hwe = NULL; in rtp_get_context()
195 *hwe = ctx->hwe; in rtp_get_context()
196 *gt = (*hwe)->gt; in rtp_get_context()
255 struct xe_hw_engine *hwe = NULL; in xe_rtp_process_to_sr() local
301 struct xe_hw_engine *hwe; in xe_rtp_process() local
[all …]
H A Dxe_execlist.c47 struct xe_gt *gt = hwe->gt; in __start_lrc()
63 if (hwe->class == XE_ENGINE_CLASS_COMPUTE) in __start_lrc()
83 xe_bo_ggtt_addr(hwe->hwsp)); in __start_lrc()
86 if (xe_device_has_msix(gt_to_xe(hwe->gt))) in __start_lrc()
132 __start_lrc(port->hwe, port->lrc, 0); in __xe_execlist_port_idle()
173 struct xe_gt *gt = hwe->gt; in read_execlist_status()
258 struct xe_hw_engine *hwe) in xe_execlist_port_create() argument
270 port->hwe = hwe; in xe_execlist_port_create()
304 port->hwe->irq_handler = NULL; in xe_execlist_port_destroy()
345 .name = q->hwe->name, in execlist_exec_queue_init()
[all …]
H A Dxe_reg_whitelist.c23 const struct xe_hw_engine *hwe) in match_not_render() argument
25 return hwe->class != XE_ENGINE_CLASS_RENDER; in match_not_render()
93 static void whitelist_apply_to_hwe(struct xe_hw_engine *hwe) in whitelist_apply_to_hwe() argument
95 struct xe_reg_sr *sr = &hwe->reg_whitelist; in whitelist_apply_to_hwe()
102 p = xe_gt_dbg_printer(hwe->gt); in whitelist_apply_to_hwe()
107 .reg = RING_FORCE_TO_NONPRIV(hwe->mmio_base, slot), in whitelist_apply_to_hwe()
114 xe_gt_err(hwe->gt, in whitelist_apply_to_hwe()
116 hwe->name, RING_MAX_NONPRIV_SLOTS); in whitelist_apply_to_hwe()
121 xe_reg_sr_add(&hwe->reg_sr, &hwe_entry, hwe->gt); in whitelist_apply_to_hwe()
140 &hwe->reg_whitelist); in xe_reg_whitelist_process_engine()
[all …]
H A Dxe_gt.c268 struct xe_hw_engine *hwe; in xe_gt_record_default_lrcs() local
279 xe_reg_sr_init(&hwe->reg_lrc, hwe->name, xe); in xe_gt_record_default_lrcs()
280 xe_wa_process_lrc(hwe); in xe_gt_record_default_lrcs()
295 hwe->name, q); in xe_gt_record_default_lrcs()
312 hwe->name, nop_q); in xe_gt_record_default_lrcs()
656 struct xe_hw_engine *hwe; in xe_gt_record_user_engines() local
716 struct xe_hw_engine *hwe; in do_gt_restart() local
969 return hwe; in xe_gt_hw_engine()
986 return hwe; in xe_gt_any_hw_engine_by_reset_domain()
990 return hwe; in xe_gt_any_hw_engine_by_reset_domain()
[all …]
H A Dxe_guc_engine_activity.c28 u16 guc_class = xe_engine_class_to_guc_class(hwe->class); in engine_activity_map()
32 engine_activity[guc_class][hwe->logical_instance]); in engine_activity_map()
123 struct xe_guc *guc = &hwe->gt->uc.guc; in hw_engine_to_engine_activity()
125 u16 guc_class = xe_engine_class_to_guc_class(hwe->class); in hw_engine_to_engine_activity()
127 return &eag->engine[guc_class][hwe->logical_instance]; in hw_engine_to_engine_activity()
154 activity_map = engine_activity_map(guc, hwe); in get_engine_active_ticks()
192 trace_xe_guc_engine_activity(xe, ea, hwe->name, hwe->instance); in get_engine_active_ticks()
208 activity_map = engine_activity_map(guc, hwe); in get_engine_total_ticks()
227 trace_xe_guc_engine_activity(xe, ea, hwe->name, hwe->instance); in get_engine_total_ticks()
280 return get_engine_active_ticks(guc, hwe); in xe_guc_engine_activity_active_ticks()
[all …]
H A Dxe_exec_queue.c60 struct xe_gt *gt = hwe->gt; in __xe_exec_queue_alloc()
72 q->hwe = hwe; in __xe_exec_queue_alloc()
74 q->class = hwe->class; in __xe_exec_queue_alloc()
221 if (hwe->class == class) { in xe_exec_queue_create_class()
224 hwe0 = hwe; in xe_exec_queue_create_class()
265 if (!hwe) { in xe_exec_queue_create_bind()
271 BIT(hwe->logical_instance), 1, hwe, in xe_exec_queue_create_bind()
561 struct xe_hw_engine *hwe; in calc_validate_logical_mask() local
566 if (XE_IOCTL_DBG(xe, !hwe)) in calc_validate_logical_mask()
603 struct xe_hw_engine *hwe; in xe_exec_queue_create_ioctl() local
[all …]
H A Dxe_drm_client.c281 if (hwe) in any_engine()
282 return hwe; in any_engine()
294 struct xe_hw_engine *hwe; in force_wake_get_any_engine() local
297 hwe = any_engine(xe); in force_wake_get_any_engine()
298 if (!hwe) in force_wake_get_any_engine()
301 domain = xe_hw_engine_to_fw_domain(hwe); in force_wake_get_any_engine()
302 fw = gt_to_fw(hwe->gt); in force_wake_get_any_engine()
310 *phwe = hwe; in force_wake_get_any_engine()
322 struct xe_hw_engine *hwe; in show_run_ticks() local
361 gpu_timestamp = xe_hw_engine_read_timestamp(hwe); in show_run_ticks()
[all …]
H A Dxe_memirq.c278 return __memirq_source_page(memirq, hwe->instance); in xe_memirq_source_ptr()
304 return __memirq_status_page(memirq, hwe->instance); in xe_memirq_status_ptr()
419 struct xe_hw_engine *hwe) in memirq_dispatch_engine() argument
421 memirq_debug(memirq, "STATUS %s %*ph\n", hwe->name, 16, status->vaddr); in memirq_dispatch_engine()
424 xe_hw_engine_handle_irq(hwe, GT_RENDER_USER_INTERRUPT); in memirq_dispatch_engine()
450 u16 offset = hwe->irq_offset; in xe_memirq_hwe_handler()
451 u16 instance = hw_reports_to_instance_zero(memirq) ? hwe->instance : 0; in xe_memirq_hwe_handler()
459 memirq_dispatch_engine(memirq, &status_offset, hwe); in xe_memirq_hwe_handler()
473 struct xe_hw_engine *hwe; in xe_memirq_handler() local
490 for_each_hw_engine(hwe, gt, id) in xe_memirq_handler()
[all …]
H A Dxe_lrc.c111 const struct xe_hw_engine *hwe) in set_offsets() argument
121 const u32 base = hwe->mmio_base; in set_offsets()
142 xe_gt_assert(hwe->gt, count); in set_offsets()
626 x = lrc_ring_mi_mode(hwe); in reset_stop_ring()
875 struct xe_gt *gt = hwe->gt; in empty_lrc_data()
885 set_offsets(regs, reg_offsets(gt_to_xe(gt), hwe->class), hwe); in empty_lrc_data()
888 reset_stop_ring(regs, hwe); in empty_lrc_data()
981 struct xe_gt *gt = hwe->gt; in xe_lrc_init()
1024 hwe->fence_irq, hwe->name); in xe_lrc_init()
1912 struct xe_hw_engine *hwe; in get_ctx_timestamp() local
[all …]
H A Dxe_guc_ads.c239 struct xe_hw_engine *hwe; in calculate_regset_size() local
243 for_each_hw_engine(hwe, gt, id) in calculate_regset_size()
257 struct xe_hw_engine *hwe; in engine_enable_mask() local
261 for_each_hw_engine(hwe, gt, id) in engine_enable_mask()
262 if (hwe->class == class) in engine_enable_mask()
263 mask |= BIT(hwe->instance); in engine_enable_mask()
559 struct xe_hw_engine *hwe; in guc_mapping_table_init() local
570 hwe->instance); in guc_mapping_table_init()
764 .skip = hwe != hwe_rcs_reset_domain || !xe_gt_ccs_mode_enabled(hwe->gt) }, in guc_mmio_regset_write()
780 if (XE_WA(hwe->gt, 1607983814) && hwe->class == XE_ENGINE_CLASS_RENDER) { in guc_mmio_regset_write()
[all …]
H A Dxe_tuning.c182 void xe_tuning_process_engine(struct xe_hw_engine *hwe) in xe_tuning_process_engine() argument
184 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_engine()
187 hwe->gt->tuning_active.engine, in xe_tuning_process_engine()
190 &hwe->reg_sr); in xe_tuning_process_engine()
202 void xe_tuning_process_lrc(struct xe_hw_engine *hwe) in xe_tuning_process_lrc() argument
204 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_lrc()
207 hwe->gt->tuning_active.lrc, in xe_tuning_process_lrc()
209 xe_rtp_process_to_sr(&ctx, lrc_tunings, ARRAY_SIZE(lrc_tunings), &hwe->reg_lrc); in xe_tuning_process_lrc()
H A Dxe_query.c50 struct xe_hw_engine *hwe; in calc_hw_engine_info_size() local
57 for_each_hw_engine(hwe, gt, id) { in calc_hw_engine_info_size()
58 if (xe_hw_engine_is_reserved(hwe)) in calc_hw_engine_info_size()
94 struct xe_mmio *mmio = &hwe->gt->mmio; in hwe_read_timestamp()
121 struct xe_hw_engine *hwe; in query_engine_cycles() local
156 if (!hwe) in query_engine_cycles()
192 struct xe_hw_engine *hwe; in query_engines() local
210 for_each_hw_engine(hwe, gt, id) { in query_engines()
211 if (xe_hw_engine_is_reserved(hwe)) in query_engines()
217 hwe->logical_instance; in query_engines()
[all …]
H A Dxe_gt_debugfs.c92 struct xe_hw_engine *hwe; in hw_engines() local
104 for_each_hw_engine(hwe, gt, id) in hw_engines()
105 xe_hw_engine_print(hwe, p); in hw_engines()
186 struct xe_hw_engine *hwe; in register_save_restore() local
195 for_each_hw_engine(hwe, gt, id) in register_save_restore()
196 xe_reg_sr_dump(&hwe->reg_sr, p); in register_save_restore()
200 for_each_hw_engine(hwe, gt, id) in register_save_restore()
201 xe_reg_sr_dump(&hwe->reg_lrc, p); in register_save_restore()
205 for_each_hw_engine(hwe, gt, id) in register_save_restore()
206 xe_reg_whitelist_dump(&hwe->reg_whitelist, p); in register_save_restore()
H A Dxe_gt_ccs_mode.c49 struct xe_hw_engine *hwe; in __xe_gt_apply_ccs_mode() local
52 for_each_hw_engine(hwe, gt, id) { in __xe_gt_apply_ccs_mode()
53 if (hwe->class != XE_ENGINE_CLASS_COMPUTE) in __xe_gt_apply_ccs_mode()
56 if (hwe->logical_instance >= num_engines) in __xe_gt_apply_ccs_mode()
59 config |= BIT(hwe->instance) << XE_HW_ENGINE_CCS0; in __xe_gt_apply_ccs_mode()
66 mode |= CCS_MODE_CSLICE(cslice, hwe->instance); in __xe_gt_apply_ccs_mode()
H A Dxe_guc_capture.c408 struct xe_hw_engine *hwe; in guc_capture_alloc_steered_lists() local
767 struct xe_hw_engine *hwe; in guc_capture_output_size_est() local
1580 struct xe_gt *gt = hwe->gt; in xe_engine_manual_capture()
1612 hwe->name); in xe_engine_manual_capture()
1641 new->eng_inst = hwe->instance; in xe_engine_manual_capture()
1801 gt = snapshot->hwe->gt; in xe_engine_snapshot_print()
1855 struct xe_hw_engine *hwe; in xe_guc_capture_get_matching_and_lock() local
1874 if (hwe != q->hwe) in xe_guc_capture_get_matching_and_lock()
1916 struct xe_hw_engine *hwe; in xe_engine_snapshot_capture_for_queue() local
1924 if (hwe->class != q->hwe->class || in xe_engine_snapshot_capture_for_queue()
[all …]
H A Dxe_oa.c89 struct xe_hw_engine *hwe; member
1687 stream->hwe = param->hwe; in xe_oa_stream_init()
1898 return hwe->oa_unit && hwe->oa_unit->num_engines ? in xe_oa_unit_id()
1912 struct xe_hw_engine *hwe; in xe_oa_assign_hwe() local
1919 param->hwe = hwe; in xe_oa_assign_hwe()
1926 if (!param->hwe || xe_oa_unit_id(param->hwe) != param->oa_unit_id) { in xe_oa_assign_hwe()
2460 xe_gt_WARN_ON(hwe->gt, hwe->gt->info.type != XE_GT_TYPE_MEDIA); in __hwe_oam_unit()
2470 switch (hwe->class) { in __hwe_oa_unit()
2544 struct xe_hw_engine *hwe; in xe_oa_init_gt() local
2555 hwe->oa_unit = NULL; in xe_oa_init_gt()
[all …]
H A Dxe_memirq.h17 u32 xe_memirq_source_ptr(struct xe_memirq *memirq, struct xe_hw_engine *hwe);
18 u32 xe_memirq_status_ptr(struct xe_memirq *memirq, struct xe_hw_engine *hwe);
23 void xe_memirq_hwe_handler(struct xe_memirq *memirq, struct xe_hw_engine *hwe);
H A Dxe_pxp_submit.c39 struct xe_hw_engine *hwe; in allocate_vcs_execution_resources() local
44 hwe = xe_gt_hw_engine(gt, XE_ENGINE_CLASS_VIDEO_DECODE, 0, true); in allocate_vcs_execution_resources()
45 if (!hwe) in allocate_vcs_execution_resources()
48 q = xe_exec_queue_create(xe, NULL, BIT(hwe->logical_instance), 1, hwe, in allocate_vcs_execution_resources()
90 struct xe_hw_engine *hwe; in allocate_gsc_client_resources() local
98 hwe = xe_gt_hw_engine(gt, XE_ENGINE_CLASS_OTHER, 0, true); in allocate_gsc_client_resources()
101 xe_assert(xe, hwe); in allocate_gsc_client_resources()
132 q = xe_exec_queue_create(xe, vm, BIT(hwe->logical_instance), 1, hwe, in allocate_gsc_client_resources()
361 xe_assert(xe, q->hwe->engine_id == XE_HW_ENGINE_GSCCS0); in pxp_pkt_submit()
H A Dxe_hw_engine_group.c83 struct xe_hw_engine *hwe; in xe_hw_engine_setup_groups() local
107 for_each_hw_engine(hwe, gt, id) { in xe_hw_engine_setup_groups()
108 switch (hwe->class) { in xe_hw_engine_setup_groups()
110 hwe->hw_engine_group = group_bcs; in xe_hw_engine_setup_groups()
114 hwe->hw_engine_group = group_rcs_ccs; in xe_hw_engine_setup_groups()
118 hwe->hw_engine_group = group_vcs_vecs; in xe_hw_engine_setup_groups()
H A Dxe_pmu.c93 struct xe_hw_engine *hwe; in event_to_hwe() local
99 hwe = xe_hw_engine_lookup(xe, eci); in event_to_hwe()
100 if (!hwe || xe_hw_engine_is_reserved(hwe)) in event_to_hwe()
103 return hwe; in event_to_hwe()
244 struct xe_hw_engine *hwe; in read_engine_events() local
247 hwe = event_to_hwe(event); in read_engine_events()
249 val = xe_guc_engine_activity_active_ticks(&gt->uc.guc, hwe); in read_engine_events()
251 val = xe_guc_engine_activity_total_ticks(&gt->uc.guc, hwe); in read_engine_events()
/linux-6.15/drivers/net/ethernet/airoha/
H A Dairoha_ppe_debugfs.c65 struct airoha_foe_entry *hwe; in airoha_ppe_debugfs_foe_show() local
70 if (!hwe) in airoha_ppe_debugfs_foe_show()
98 src_port = &hwe->ipv6.src_port; in airoha_ppe_debugfs_foe_show()
103 src_addr = &hwe->ipv6.src_ip; in airoha_ppe_debugfs_foe_show()
104 dest_addr = &hwe->ipv6.dest_ip; in airoha_ppe_debugfs_foe_show()
136 data = hwe->ipv6.data; in airoha_ppe_debugfs_foe_show()
137 ib2 = hwe->ipv6.ib2; in airoha_ppe_debugfs_foe_show()
138 l2 = &hwe->ipv6.l2; in airoha_ppe_debugfs_foe_show()
140 data = hwe->ipv4.data; in airoha_ppe_debugfs_foe_show()
141 ib2 = hwe->ipv4.ib2; in airoha_ppe_debugfs_foe_show()
[all …]
H A Dairoha_ppe.c210 memset(hwe, 0, sizeof(*hwe)); in airoha_ppe_foe_entry_prepare()
218 hwe->ib1 = val; in airoha_ppe_foe_entry_prepare()
372 hv1 = hwe->ipv6.src_ip[3] ^ hwe->ipv6.dest_ip[3]; in airoha_ppe_foe_get_entry_hash()
375 hv2 = hwe->ipv6.src_ip[2] ^ hwe->ipv6.dest_ip[2]; in airoha_ppe_foe_get_entry_hash()
378 hv3 = hwe->ipv6.src_ip[1] ^ hwe->ipv6.dest_ip[1]; in airoha_ppe_foe_get_entry_hash()
440 return !memcmp(&e->data.d, &hwe->d, len - sizeof(hwe->ib1)); in airoha_ppe_foe_compare_entry()
447 struct airoha_foe_entry *hwe = ppe->foe + hash * sizeof(*hwe); in airoha_ppe_foe_commit_entry() local
451 memcpy(&hwe->d, &e->d, sizeof(*hwe) - sizeof(hwe->ib1)); in airoha_ppe_foe_commit_entry()
456 hwe->ib1 = e->ib1; in airoha_ppe_foe_commit_entry()
489 if (!hwe) in airoha_ppe_foe_insert_entry()
[all …]
/linux-6.15/drivers/net/ethernet/mediatek/
H A Dmtk_ppe.c520 hwe->ib1 &= ~MTK_FOE_IB1_STATE; in __mtk_foe_entry_clear()
559 struct mtk_foe_entry *hwe; in mtk_flow_entry_update_l2() local
569 ib1 = READ_ONCE(hwe->ib1); in mtk_flow_entry_update_l2()
591 struct mtk_foe_entry *hwe; in mtk_flow_entry_update() local
622 struct mtk_foe_entry *hwe; in __mtk_foe_entry_commit() local
635 hwe = mtk_foe_get_entry(ppe, hash); in __mtk_foe_entry_commit()
636 memcpy(&hwe->data, &entry->data, eth->soc->foe_entry_size - sizeof(hwe->ib1)); in __mtk_foe_entry_commit()
638 hwe->ib1 = entry->ib1; in __mtk_foe_entry_commit()
719 hwe = mtk_foe_get_entry(ppe, hash); in mtk_foe_entry_commit_subflow()
968 struct mtk_foe_entry *hwe; in mtk_ppe_init_foe_table() local
[all …]

123