Home
last modified time | relevance | path

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

12

/linux/drivers/gpu/drm/xe/
A Dxe_hw_engine.c293 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in xe_hw_engine_mmio_write32()
294 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in xe_hw_engine_mmio_write32()
313 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in xe_hw_engine_mmio_read32()
314 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in xe_hw_engine_mmio_read32()
478 hwe->gt = gt; in hw_engine_init_early()
488 hwe->eclass = &gt->eclass[hwe->class]; in hw_engine_init_early()
526 hwe->eclass->defaults = hwe->eclass->sched_props; in hw_engine_init_early()
529 xe_reg_sr_init(&hwe->reg_sr, hwe->name, gt_to_xe(gt)); in hw_engine_init_early()
561 hwe->exl_port = xe_execlist_port_create(xe, hwe); in hw_engine_init()
795 hwe->irq_handler(hwe, intr_vec); in xe_hw_engine_handle_irq()
[all …]
A Dxe_hw_engine.h53 void xe_hw_engine_handle_irq(struct xe_hw_engine *hwe, u16 intr_vec);
54 void xe_hw_engine_enable_ring(struct xe_hw_engine *hwe);
59 xe_hw_engine_snapshot_capture(struct xe_hw_engine *hwe);
63 void xe_hw_engine_print(struct xe_hw_engine *hwe, struct drm_printer *p);
64 void xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe);
66 bool xe_hw_engine_is_reserved(struct xe_hw_engine *hwe);
72 static inline bool xe_hw_engine_is_valid(struct xe_hw_engine *hwe) in xe_hw_engine_is_valid() argument
74 return hwe->name; in xe_hw_engine_is_valid()
78 u64 xe_hw_engine_read_timestamp(struct xe_hw_engine *hwe);
79 enum xe_force_wake_domains xe_hw_engine_to_fw_domain(struct xe_hw_engine *hwe);
[all …]
A Dxe_execlist.c46 struct xe_gt *gt = hwe->gt; in __start_lrc()
60 if (hwe->class == XE_ENGINE_CLASS_COMPUTE) in __start_lrc()
61 xe_mmio_write32(hwe->gt, RCU_MODE, in __start_lrc()
80 xe_bo_ggtt_addr(hwe->hwsp)); in __start_lrc()
127 __start_lrc(port->hwe, port->lrc, 0); in __xe_execlist_port_idle()
168 struct xe_gt *gt = hwe->gt; in read_execlist_status()
253 struct xe_hw_engine *hwe) in xe_execlist_port_create() argument
265 port->hwe = hwe; in xe_execlist_port_create()
299 port->hwe->irq_handler = NULL; in xe_execlist_port_destroy()
351 NULL, NULL, q->hwe->name, in execlist_exec_queue_init()
[all …]
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()
253 struct xe_hw_engine *hwe = NULL; in xe_rtp_process_to_sr() local
297 struct xe_hw_engine *hwe; in xe_rtp_process() local
[all …]
A Dxe_gt.c285 struct xe_hw_engine *hwe; in xe_gt_record_default_lrcs() local
296 xe_reg_sr_init(&hwe->reg_lrc, hwe->name, xe); in xe_gt_record_default_lrcs()
297 xe_wa_process_lrc(hwe); in xe_gt_record_default_lrcs()
312 hwe->name, q); in xe_gt_record_default_lrcs()
329 hwe->name, nop_q); in xe_gt_record_default_lrcs()
627 struct xe_hw_engine *hwe; in xe_gt_record_user_engines() local
684 struct xe_hw_engine *hwe; in do_gt_restart() local
923 return hwe; in xe_gt_hw_engine()
940 return hwe; in xe_gt_any_hw_engine_by_reset_domain()
944 return hwe; in xe_gt_any_hw_engine_by_reset_domain()
[all …]
A Dxe_exec_queue.c55 struct xe_gt *gt = hwe->gt; in __xe_exec_queue_alloc()
67 q->hwe = hwe; in __xe_exec_queue_alloc()
69 q->class = hwe->class; in __xe_exec_queue_alloc()
182 if (hwe->class == class) { in xe_exec_queue_create_class()
185 hwe0 = hwe; in xe_exec_queue_create_class()
226 if (!hwe) { in xe_exec_queue_create_bind()
232 BIT(hwe->logical_instance), 1, hwe, in xe_exec_queue_create_bind()
497 struct xe_hw_engine *hwe; in calc_validate_logical_mask() local
539 struct xe_hw_engine *hwe; in xe_exec_queue_create_ioctl() local
602 if (XE_IOCTL_DBG(xe, !hwe)) in xe_exec_queue_create_ioctl()
[all …]
A Dxe_devcoredump.c108 if (coredump->snapshot.hwe[i]) in __xe_devcoredump_read()
109 xe_hw_engine_snapshot_print(coredump->snapshot.hwe[i], in __xe_devcoredump_read()
131 if (ss->hwe[i]) { in xe_devcoredump_snapshot_free()
132 xe_hw_engine_snapshot_free(ss->hwe[i]); in xe_devcoredump_snapshot_free()
133 ss->hwe[i] = NULL; in xe_devcoredump_snapshot_free()
217 struct xe_hw_engine *hwe; in devcoredump_snapshot() local
255 for_each_hw_engine(hwe, q->gt, id) { in devcoredump_snapshot()
256 if (hwe->class != q->hwe->class || in devcoredump_snapshot()
257 !(BIT(hwe->logical_instance) & adj_logical_mask)) { in devcoredump_snapshot()
258 coredump->snapshot.hwe[id] = NULL; in devcoredump_snapshot()
[all …]
A Dxe_guc_ads.c241 struct xe_hw_engine *hwe; in calculate_regset_size() local
245 for_each_hw_engine(hwe, gt, id) in calculate_regset_size()
259 struct xe_hw_engine *hwe; in engine_enable_mask() local
263 for_each_hw_engine(hwe, gt, id) in engine_enable_mask()
264 if (hwe->class == class) in engine_enable_mask()
265 mask |= BIT(hwe->instance); in engine_enable_mask()
524 struct xe_hw_engine *hwe; in guc_mapping_table_init() local
535 hwe->instance); in guc_mapping_table_init()
571 struct xe_hw_engine *hwe) in guc_mmio_regset_write() argument
588 .skip = hwe != hwe_rcs_reset_domain || !xe_gt_ccs_mode_enabled(hwe->gt) }, in guc_mmio_regset_write()
[all …]
A Dxe_oa.c82 struct xe_hw_engine *hwe; member
1356 stream->hwe = param->hwe; in xe_oa_stream_init()
1383 stream->hwe->name); in xe_oa_stream_init()
1599 return hwe->oa_unit && hwe->oa_unit->num_engines ? in xe_oa_unit_id()
1613 struct xe_hw_engine *hwe; in xe_oa_assign_hwe() local
1620 param->hwe = hwe; in xe_oa_assign_hwe()
1627 if (!param->hwe || xe_oa_unit_id(param->hwe) != param->oa_unit_id) { in xe_oa_assign_hwe()
2283 xe_gt_WARN_ON(hwe->gt, hwe->gt->info.type != XE_GT_TYPE_MEDIA); in __hwe_oam_unit()
2293 switch (hwe->class) { in __hwe_oa_unit()
2365 struct xe_hw_engine *hwe; in xe_oa_init_gt() local
[all …]
A Dxe_gt_debugfs.c90 struct xe_hw_engine *hwe; in hw_engines() local
101 for_each_hw_engine(hwe, gt, id) in hw_engines()
102 xe_hw_engine_print(hwe, p); in hw_engines()
175 struct xe_hw_engine *hwe; in register_save_restore() local
184 for_each_hw_engine(hwe, gt, id) in register_save_restore()
185 xe_reg_sr_dump(&hwe->reg_sr, p); in register_save_restore()
189 for_each_hw_engine(hwe, gt, id) in register_save_restore()
190 xe_reg_sr_dump(&hwe->reg_lrc, p); in register_save_restore()
194 for_each_hw_engine(hwe, gt, id) in register_save_restore()
195 xe_reg_whitelist_dump(&hwe->reg_whitelist, p); in register_save_restore()
A Dxe_lrc.c127 const struct xe_hw_engine *hwe) in set_offsets() argument
137 const u32 base = hwe->mmio_base; in set_offsets()
158 xe_gt_assert(hwe->gt, count); in set_offsets()
635 x = lrc_ring_mi_mode(hwe); in reset_stop_ring()
852 struct xe_gt *gt = hwe->gt; in empty_lrc_data()
862 set_offsets(regs, reg_offsets(gt_to_xe(gt), hwe->class), hwe); in empty_lrc_data()
863 set_context_control(regs, hwe); in empty_lrc_data()
865 reset_stop_ring(regs, hwe); in empty_lrc_data()
898 struct xe_gt *gt = hwe->gt; in xe_lrc_init()
932 hwe->fence_irq, hwe->name); in xe_lrc_init()
[all …]
A Dxe_query.c45 struct xe_hw_engine *hwe; in calc_hw_engine_info_size() local
52 for_each_hw_engine(hwe, gt, id) { in calc_hw_engine_info_size()
53 if (xe_hw_engine_is_reserved(hwe)) in calc_hw_engine_info_size()
118 struct xe_hw_engine *hwe; in query_engine_cycles() local
149 if (!hwe) in query_engine_cycles()
156 RING_TIMESTAMP(hwe->mmio_base), in query_engine_cycles()
193 struct xe_hw_engine *hwe; in query_engines() local
211 for_each_hw_engine(hwe, gt, id) { in query_engines()
212 if (xe_hw_engine_is_reserved(hwe)) in query_engines()
218 hwe->logical_instance; in query_engines()
[all …]
A Dxe_tuning.c154 void xe_tuning_process_engine(struct xe_hw_engine *hwe) in xe_tuning_process_engine() argument
156 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_engine()
158 xe_rtp_process_to_sr(&ctx, engine_tunings, &hwe->reg_sr); in xe_tuning_process_engine()
170 void xe_tuning_process_lrc(struct xe_hw_engine *hwe) in xe_tuning_process_lrc() argument
172 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_lrc()
174 xe_rtp_process_to_sr(&ctx, lrc_tunings, &hwe->reg_lrc); in xe_tuning_process_lrc()
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()
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()
A Dxe_reg_whitelist.c21 const struct xe_hw_engine *hwe) in match_not_render() argument
23 return hwe->class != XE_ENGINE_CLASS_RENDER; in match_not_render()
100 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe) in xe_reg_whitelist_process_engine() argument
102 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_reg_whitelist_process_engine()
104 xe_rtp_process_to_sr(&ctx, register_whitelist, &hwe->reg_whitelist); in xe_reg_whitelist_process_engine()
A Dxe_drm_client.c278 struct xe_hw_engine *hwe; in show_run_ticks() local
301 hwe = xe_gt_any_hw_engine(gt); in show_run_ticks()
302 if (!hwe) in show_run_ticks()
305 fw = xe_hw_engine_to_fw_domain(hwe); in show_run_ticks()
307 hwe = NULL; in show_run_ticks()
311 gpu_timestamp = xe_hw_engine_read_timestamp(hwe); in show_run_ticks()
318 if (unlikely(!hwe)) in show_run_ticks()
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()
A Dxe_gt.h89 static inline bool xe_gt_is_usm_hwe(struct xe_gt *gt, struct xe_hw_engine *hwe) in xe_gt_is_usm_hwe() argument
93 return xe->info.has_usm && hwe->class == XE_ENGINE_CLASS_COPY && in xe_gt_is_usm_hwe()
94 hwe->instance == gt->usm.reserved_bcs_instance; in xe_gt_is_usm_hwe()
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);
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()
A Dxe_wa.h19 void xe_wa_process_engine(struct xe_hw_engine *hwe);
20 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
A Dxe_rtp_types.h90 const struct xe_hw_engine *hwe);
120 struct xe_hw_engine *hwe; member
A Dxe_hw_engine_class_sysfs.c633 struct xe_hw_engine *hwe; in xe_hw_engine_class_sysfs_init() local
649 for_each_hw_engine(hwe, gt, id) { in xe_hw_engine_class_sysfs_init()
653 if (hwe->class == XE_ENGINE_CLASS_OTHER || in xe_hw_engine_class_sysfs_init()
654 hwe->class == XE_ENGINE_CLASS_MAX) in xe_hw_engine_class_sysfs_init()
657 if ((class_mask >> hwe->class) & 1) in xe_hw_engine_class_sysfs_init()
660 class_mask |= 1 << hwe->class; in xe_hw_engine_class_sysfs_init()
661 name = xe_hw_engine_class_to_str(hwe->class); in xe_hw_engine_class_sysfs_init()
673 keclass->eclass = hwe->eclass; in xe_hw_engine_class_sysfs_init()
/linux/drivers/net/ethernet/mediatek/
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 …]

Completed in 51 milliseconds

12