/linux/drivers/gpu/drm/xe/ |
H A D | xe_hw_engine.c | 272 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 = >->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 D | xe_rtp.c | 33 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 D | xe_execlist.c | 47 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 D | xe_gt.c | 230 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 D | xe_hw_engine.h | 51 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 D | xe_exec_queue.c | 50 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 D | xe_devcoredump.c | 124 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 D | xe_guc_ads.c | 237 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 D | xe_tuning.c | 107 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 D | xe_gt_debugfs.c | 84 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 D | xe_lrc.c | 109 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 D | xe_gt_ccs_mode.c | 47 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 D | xe_reg_whitelist.c | 20 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 D | xe_memirq.c | 362 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 D | xe_wa.h | 17 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 D | xe_query.c | 44 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 D | xe_gt.h | 66 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 D | xe_tuning.h | 13 void xe_tuning_process_engine(struct xe_hw_engine *hwe); 14 void xe_tuning_process_lrc(struct xe_hw_engine *hwe);
|
H A D | xe_reg_sr.c | 213 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 D | xe_rtp_types.h | 87 const struct xe_hw_engine *hwe); 117 struct xe_hw_engine *hwe; member
|
H A D | xe_hw_engine_class_sysfs.c | 651 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 D | xe_rtp.h | 399 const struct xe_hw_engine *hwe); 417 const struct xe_hw_engine *hwe); 428 const struct xe_hw_engine *hwe);
|
H A D | xe_gsc.c | 375 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 D | xe_wa.c | 739 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 D | mtk_ppe.c | 520 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 …]
|