| /linux/drivers/gpu/drm/xe/ |
| A D | xe_hw_engine.c | 293 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 = >->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 D | xe_hw_engine.h | 53 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 D | xe_execlist.c | 46 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 D | xe_rtp.c | 34 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 D | xe_gt.c | 285 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 D | xe_exec_queue.c | 55 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 D | xe_devcoredump.c | 108 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 D | xe_guc_ads.c | 241 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 D | xe_oa.c | 82 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 D | xe_gt_debugfs.c | 90 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 D | xe_lrc.c | 127 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 D | xe_query.c | 45 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 D | xe_tuning.c | 154 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 D | xe_gt_ccs_mode.c | 49 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 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()
|
| A D | xe_reg_whitelist.c | 21 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 D | xe_drm_client.c | 278 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 D | xe_hw_engine_group.c | 83 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 D | xe_gt.h | 89 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 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);
|
| 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()
|
| A D | xe_wa.h | 19 void xe_wa_process_engine(struct xe_hw_engine *hwe); 20 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
|
| A D | xe_rtp_types.h | 90 const struct xe_hw_engine *hwe); 120 struct xe_hw_engine *hwe; member
|
| A D | xe_hw_engine_class_sysfs.c | 633 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 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 …]
|