Home
last modified time | relevance | path

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

12

/linux/drivers/gpu/drm/xe/
H A Dxe_hw_engine.c272 hwe->gt = NULL; in hw_engine_fini()
278 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in hw_engine_mmio_write32()
279 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in hw_engine_mmio_write32()
288 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in hw_engine_mmio_read32()
289 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in hw_engine_mmio_read32()
447 hwe->gt = gt; in hw_engine_init_early()
457 hwe->eclass = &gt->eclass[hwe->class]; in hw_engine_init_early()
495 hwe->eclass->defaults = hwe->eclass->sched_props; in hw_engine_init_early()
498 xe_reg_sr_init(&hwe->reg_sr, hwe->name, gt_to_xe(gt)); in hw_engine_init_early()
534 hwe->exl_port = xe_execlist_port_create(xe, hwe); in hw_engine_init()
[all …]
H A Dxe_rtp.c33 struct xe_hw_engine *hwe, in rule_matches() argument
85 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_matches()
97 match = r->match_func(gt, hwe); in rule_matches()
142 mmio_base = hwe->mmio_base; in rtp_process_one_sr()
153 struct xe_hw_engine **hwe, in rtp_get_context() argument
159 *hwe = NULL; in rtp_get_context()
164 *hwe = ctx->hwe; in rtp_get_context()
165 *gt = (*hwe)->gt; in rtp_get_context()
224 struct xe_hw_engine *hwe = NULL; in xe_rtp_process_to_sr() local
268 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()
61 if (hwe->class == XE_ENGINE_CLASS_COMPUTE) in __start_lrc()
62 xe_mmio_write32(hwe->gt, RCU_MODE, in __start_lrc()
81 xe_bo_ggtt_addr(hwe->hwsp)); in __start_lrc()
128 __start_lrc(port->hwe, &port->hwe->kernel_lrc, 0); in __xe_execlist_port_idle()
169 struct xe_gt *gt = hwe->gt; in read_execlist_status()
254 struct xe_hw_engine *hwe) in xe_execlist_port_create() argument
264 port->hwe = hwe; in xe_execlist_port_create()
289 port->hwe->irq_handler = NULL; in xe_execlist_port_destroy()
338 NULL, NULL, q->hwe->name, in execlist_exec_queue_init()
[all …]
H A Dxe_gt.c230 struct xe_hw_engine *hwe; in xe_gt_record_default_lrcs() local
241 xe_reg_sr_init(&hwe->reg_lrc, hwe->name, xe); in xe_gt_record_default_lrcs()
242 xe_wa_process_lrc(hwe); in xe_gt_record_default_lrcs()
257 hwe->name, q); in xe_gt_record_default_lrcs()
274 hwe->name, nop_q); in xe_gt_record_default_lrcs()
589 struct xe_hw_engine *hwe; in do_gt_restart() local
779 struct xe_hw_engine *hwe; in xe_gt_hw_engine() local
786 return hwe; in xe_gt_hw_engine()
794 struct xe_hw_engine *hwe; in xe_gt_any_hw_engine_by_reset_domain() local
803 return hwe; in xe_gt_any_hw_engine_by_reset_domain()
[all …]
H A Dxe_hw_engine.h51 void xe_hw_engine_handle_irq(struct xe_hw_engine *hwe, u16 intr_vec);
52 void xe_hw_engine_enable_ring(struct xe_hw_engine *hwe);
57 xe_hw_engine_snapshot_capture(struct xe_hw_engine *hwe);
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);
65 static inline bool xe_hw_engine_is_valid(struct xe_hw_engine *hwe) in xe_hw_engine_is_valid() argument
67 return hwe->name; in xe_hw_engine_is_valid()
H A Dxe_exec_queue.c50 struct xe_gt *gt = hwe->gt; in __xe_exec_queue_alloc()
62 q->hwe = hwe; in __xe_exec_queue_alloc()
64 q->class = hwe->class; in __xe_exec_queue_alloc()
185 if (hwe->class == class) { in xe_exec_queue_create_class()
188 hwe0 = hwe; in xe_exec_queue_create_class()
461 struct xe_hw_engine *hwe; in bind_exec_queue_logical_mask() local
478 if (hwe->class == in bind_exec_queue_logical_mask()
504 struct xe_hw_engine *hwe; in calc_validate_logical_mask() local
546 struct xe_hw_engine *hwe; in xe_exec_queue_create_ioctl() local
625 if (XE_IOCTL_DBG(xe, !hwe)) in xe_exec_queue_create_ioctl()
[all …]
H A Dxe_devcoredump.c124 if (coredump->snapshot.hwe[i]) in xe_devcoredump_read()
125 xe_hw_engine_snapshot_print(coredump->snapshot.hwe[i], in xe_devcoredump_read()
148 if (coredump->snapshot.hwe[i]) in xe_devcoredump_free()
149 xe_hw_engine_snapshot_free(coredump->snapshot.hwe[i]); in xe_devcoredump_free()
165 struct xe_hw_engine *hwe; in devcoredump_snapshot() local
197 for_each_hw_engine(hwe, q->gt, id) { in devcoredump_snapshot()
198 if (hwe->class != q->hwe->class || in devcoredump_snapshot()
199 !(BIT(hwe->logical_instance) & adj_logical_mask)) { in devcoredump_snapshot()
200 coredump->snapshot.hwe[id] = NULL; in devcoredump_snapshot()
203 coredump->snapshot.hwe[id] = xe_hw_engine_snapshot_capture(hwe); in devcoredump_snapshot()
H A Dxe_guc_ads.c237 struct xe_hw_engine *hwe; in calculate_regset_size() local
241 for_each_hw_engine(hwe, gt, id) in calculate_regset_size()
255 struct xe_hw_engine *hwe; in engine_enable_mask() local
259 for_each_hw_engine(hwe, gt, id) in engine_enable_mask()
260 if (hwe->class == class) in engine_enable_mask()
261 mask |= BIT(hwe->instance); in engine_enable_mask()
509 struct xe_hw_engine *hwe; in guc_mapping_table_init() local
520 hwe->instance); in guc_mapping_table_init()
556 struct xe_hw_engine *hwe) in guc_mmio_regset_write() argument
573 .skip = hwe != hwe_rcs_reset_domain || !xe_gt_ccs_mode_enabled(hwe->gt) }, in guc_mmio_regset_write()
[all …]
H A Dxe_tuning.c107 void xe_tuning_process_engine(struct xe_hw_engine *hwe) in xe_tuning_process_engine() argument
109 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_engine()
111 xe_rtp_process_to_sr(&ctx, engine_tunings, &hwe->reg_sr); in xe_tuning_process_engine()
123 void xe_tuning_process_lrc(struct xe_hw_engine *hwe) in xe_tuning_process_lrc() argument
125 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_lrc()
127 xe_rtp_process_to_sr(&ctx, lrc_tunings, &hwe->reg_lrc); in xe_tuning_process_lrc()
H A Dxe_gt_debugfs.c84 struct xe_hw_engine *hwe; in hw_engines() local
95 for_each_hw_engine(hwe, gt, id) in hw_engines()
96 xe_hw_engine_print(hwe, p); in hw_engines()
158 struct xe_hw_engine *hwe; in register_save_restore() local
167 for_each_hw_engine(hwe, gt, id) in register_save_restore()
168 xe_reg_sr_dump(&hwe->reg_sr, p); in register_save_restore()
172 for_each_hw_engine(hwe, gt, id) in register_save_restore()
173 xe_reg_sr_dump(&hwe->reg_lrc, p); in register_save_restore()
177 for_each_hw_engine(hwe, gt, id) in register_save_restore()
178 xe_reg_whitelist_dump(&hwe->reg_whitelist, p); in register_save_restore()
H A Dxe_lrc.c109 const struct xe_hw_engine *hwe) in set_offsets() argument
119 const u32 base = hwe->mmio_base; in set_offsets()
140 xe_gt_assert(hwe->gt, count); in set_offsets()
587 x = lrc_ring_mi_mode(hwe); in reset_stop_ring()
706 set_offsets(regs, reg_offsets(xe, hwe->class), hwe); in empty_lrc_data()
707 set_context_control(regs, hwe); in empty_lrc_data()
709 reset_stop_ring(regs, hwe); in empty_lrc_data()
728 struct xe_gt *gt = hwe->gt; in xe_lrc_init()
751 lrc->tile = gt_to_tile(hwe->gt); in xe_lrc_init()
756 hwe->fence_irq, hwe->name); in xe_lrc_init()
[all …]
H A Dxe_gt_ccs_mode.c47 struct xe_hw_engine *hwe; in __xe_gt_apply_ccs_mode() local
50 for_each_hw_engine(hwe, gt, id) { in __xe_gt_apply_ccs_mode()
51 if (hwe->class != XE_ENGINE_CLASS_COMPUTE) in __xe_gt_apply_ccs_mode()
54 if (hwe->logical_instance >= num_engines) in __xe_gt_apply_ccs_mode()
57 config |= BIT(hwe->instance) << XE_HW_ENGINE_CCS0; in __xe_gt_apply_ccs_mode()
64 mode |= CCS_MODE_CSLICE(cslice, hwe->instance); in __xe_gt_apply_ccs_mode()
H A Dxe_reg_whitelist.c20 const struct xe_hw_engine *hwe) in match_not_render() argument
22 return hwe->class != XE_ENGINE_CLASS_RENDER; in match_not_render()
78 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe) in xe_reg_whitelist_process_engine() argument
80 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_reg_whitelist_process_engine()
82 xe_rtp_process_to_sr(&ctx, register_whitelist, &hwe->reg_whitelist); in xe_reg_whitelist_process_engine()
H A Dxe_memirq.c362 struct xe_hw_engine *hwe) in memirq_dispatch_engine() argument
364 memirq_debug(memirq, "STATUS %s %*ph\n", hwe->name, 16, status->vaddr); in memirq_dispatch_engine()
366 if (memirq_received(memirq, status, ilog2(GT_RENDER_USER_INTERRUPT), hwe->name)) in memirq_dispatch_engine()
367 xe_hw_engine_handle_irq(hwe, GT_RENDER_USER_INTERRUPT); in memirq_dispatch_engine()
391 struct xe_hw_engine *hwe; in xe_memirq_handler() local
408 for_each_hw_engine(hwe, gt, id) { in xe_memirq_handler()
409 if (memirq_received(memirq, &memirq->source, hwe->irq_offset, "SRC")) { in xe_memirq_handler()
411 hwe->irq_offset * SZ_16); in xe_memirq_handler()
412 memirq_dispatch_engine(memirq, &map, hwe); in xe_memirq_handler()
H A Dxe_wa.h17 void xe_wa_process_engine(struct xe_hw_engine *hwe);
18 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
21 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
H A Dxe_query.c44 struct xe_hw_engine *hwe; in calc_hw_engine_info_size() local
51 for_each_hw_engine(hwe, gt, id) { in calc_hw_engine_info_size()
52 if (xe_hw_engine_is_reserved(hwe)) in calc_hw_engine_info_size()
117 struct xe_hw_engine *hwe; in query_engine_cycles() local
148 if (!hwe) in query_engine_cycles()
155 RING_TIMESTAMP(hwe->mmio_base), in query_engine_cycles()
156 RING_TIMESTAMP_UDW(hwe->mmio_base), in query_engine_cycles()
188 struct xe_hw_engine *hwe; in query_engines() local
206 for_each_hw_engine(hwe, gt, id) { in query_engines()
207 if (xe_hw_engine_is_reserved(hwe)) in query_engines()
[all …]
H A Dxe_gt.h66 static inline bool xe_gt_is_usm_hwe(struct xe_gt *gt, struct xe_hw_engine *hwe) in xe_gt_is_usm_hwe() argument
70 return xe->info.has_usm && hwe->class == XE_ENGINE_CLASS_COPY && in xe_gt_is_usm_hwe()
71 hwe->instance == gt->usm.reserved_bcs_instance; in xe_gt_is_usm_hwe()
H A Dxe_tuning.h13 void xe_tuning_process_engine(struct xe_hw_engine *hwe);
14 void xe_tuning_process_lrc(struct xe_hw_engine *hwe);
H A Dxe_reg_sr.c213 void xe_reg_sr_apply_whitelist(struct xe_hw_engine *hwe) in xe_reg_sr_apply_whitelist() argument
215 struct xe_reg_sr *sr = &hwe->reg_whitelist; in xe_reg_sr_apply_whitelist()
216 struct xe_gt *gt = hwe->gt; in xe_reg_sr_apply_whitelist()
220 u32 mmio_base = hwe->mmio_base; in xe_reg_sr_apply_whitelist()
239 hwe->name, RING_MAX_NONPRIV_SLOTS); in xe_reg_sr_apply_whitelist()
H A Dxe_rtp_types.h87 const struct xe_hw_engine *hwe);
117 struct xe_hw_engine *hwe; member
H A Dxe_hw_engine_class_sysfs.c651 struct xe_hw_engine *hwe; in xe_hw_engine_class_sysfs_init() local
667 for_each_hw_engine(hwe, gt, id) { in xe_hw_engine_class_sysfs_init()
671 if (hwe->class == XE_ENGINE_CLASS_OTHER || in xe_hw_engine_class_sysfs_init()
672 hwe->class == XE_ENGINE_CLASS_MAX) in xe_hw_engine_class_sysfs_init()
675 if ((class_mask >> hwe->class) & 1) in xe_hw_engine_class_sysfs_init()
678 class_mask |= 1 << hwe->class; in xe_hw_engine_class_sysfs_init()
679 name = xe_hw_engine_class_to_str(hwe->class); in xe_hw_engine_class_sysfs_init()
691 keclass->eclass = hwe->eclass; in xe_hw_engine_class_sysfs_init()
H A Dxe_rtp.h399 const struct xe_hw_engine *hwe);
417 const struct xe_hw_engine *hwe);
428 const struct xe_hw_engine *hwe);
H A Dxe_gsc.c375 void xe_gsc_hwe_irq_handler(struct xe_hw_engine *hwe, u16 intr_vec) in xe_gsc_hwe_irq_handler() argument
377 struct xe_gt *gt = hwe->gt; in xe_gsc_hwe_irq_handler()
457 struct xe_hw_engine *hwe = xe_gt_hw_engine(gt, XE_ENGINE_CLASS_OTHER, 0, true); in xe_gsc_init_post_hwconfig() local
466 if (!hwe) in xe_gsc_init_post_hwconfig()
477 BIT(hwe->logical_instance), 1, hwe, in xe_gsc_init_post_hwconfig()
H A Dxe_wa.c739 void xe_wa_process_engine(struct xe_hw_engine *hwe) in xe_wa_process_engine() argument
741 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_wa_process_engine()
743 xe_rtp_process_ctx_enable_active_tracking(&ctx, hwe->gt->wa_active.engine, in xe_wa_process_engine()
745 xe_rtp_process_to_sr(&ctx, engine_was, &hwe->reg_sr); in xe_wa_process_engine()
756 void xe_wa_process_lrc(struct xe_hw_engine *hwe) in xe_wa_process_lrc() argument
758 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_wa_process_lrc()
760 xe_rtp_process_ctx_enable_active_tracking(&ctx, hwe->gt->wa_active.lrc, in xe_wa_process_lrc()
762 xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc); in xe_wa_process_lrc()
/linux/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 …]

12