| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_hw_engine.c | 277 struct xe_hw_engine *hwe = arg; in hw_engine_fini() local 279 if (hwe->exl_port) in hw_engine_fini() 280 xe_execlist_port_destroy(hwe->exl_port); in hw_engine_fini() 282 hwe->gt = NULL; in hw_engine_fini() 295 u32 xe_hw_engine_mmio_read32(struct xe_hw_engine *hwe, struct xe_reg reg) in xe_hw_engine_mmio_read32() argument 297 xe_gt_assert(hwe->gt, !(reg.addr & hwe->mmio_base)); in xe_hw_engine_mmio_read32() 298 xe_force_wake_assert_held(gt_to_fw(hwe->gt), hwe->domain); in xe_hw_engine_mmio_read32() 300 reg.addr += hwe->mmio_base; in xe_hw_engine_mmio_read32() 302 return xe_mmio_read32(&hwe->gt->mmio, reg); in xe_hw_engine_mmio_read32() 305 void xe_hw_engine_enable_ring(struct xe_hw_engine *hwe) in xe_hw_engine_enable_ring() argument [all …]
|
| H A D | xe_reg_whitelist.c | 27 const struct xe_hw_engine *hwe) in match_not_render() argument 29 return hwe->class != XE_ENGINE_CLASS_RENDER; in match_not_render() 34 const struct xe_hw_engine *hwe) in match_has_mert() argument 41 const struct xe_hw_engine *hwe) in match_multi_queue_class() argument 43 return xe_gt_supports_multi_queue(gt, hwe->class); in match_multi_queue_class() 167 static int whitelist_apply_to_hwe(struct xe_hw_engine *hwe, struct xe_reg_sr *in, in whitelist_apply_to_hwe() argument 176 xe_gt_dbg(hwe->gt, "Add %s whitelist to engine\n", sr->name); in whitelist_apply_to_hwe() 177 p = xe_gt_dbg_printer(hwe->gt); in whitelist_apply_to_hwe() 182 .reg = RING_FORCE_TO_NONPRIV(hwe->mmio_base, slot), in whitelist_apply_to_hwe() 189 xe_gt_err(hwe->gt, in whitelist_apply_to_hwe() [all …]
|
| H A D | xe_rtp.c | 36 struct xe_hw_engine *hwe; member 52 struct xe_hw_engine *hwe = match_ctx->hwe; in rule_match_item() local 122 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_match_item() 125 return hwe->class == r->engine_class; in rule_match_item() 127 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_match_item() 130 return hwe->class != r->engine_class; in rule_match_item() 132 return r->match_func(xe, gt, hwe); in rule_match_item() 199 struct xe_hw_engine *hwe, in rule_matches_with_err() argument 207 .hwe = hwe, in rule_matches_with_err() 221 struct xe_hw_engine *hwe, in rule_matches() argument [all …]
|
| H A D | xe_gt_debugfs.c | 114 struct xe_hw_engine *hwe; in hw_engines() local 121 for_each_hw_engine(hwe, gt, id) in hw_engines() 122 xe_hw_engine_print(hwe, p); in hw_engines() 135 struct xe_hw_engine *hwe; in register_save_restore() local 142 for_each_hw_engine(hwe, gt, id) in register_save_restore() 143 xe_reg_sr_dump(&hwe->reg_sr, p); in register_save_restore() 147 for_each_hw_engine(hwe, gt, id) in register_save_restore() 148 xe_reg_sr_dump(&hwe->reg_lrc, p); in register_save_restore() 152 for_each_hw_engine(hwe, gt, id) { in register_save_restore() 153 xe_reg_whitelist_dump(&hwe->reg_whitelist, p); in register_save_restore() [all …]
|
| H A D | xe_drm_client.c | 288 struct xe_hw_engine *hwe = xe_gt_any_hw_engine(gt); in any_engine() local 290 if (hwe) in any_engine() 291 return hwe; in any_engine() 307 struct xe_hw_engine *hwe; in force_wake_get_any_engine() local 311 hwe = any_engine(xe); in force_wake_get_any_engine() 312 if (!hwe) in force_wake_get_any_engine() 315 domain = xe_hw_engine_to_fw_domain(hwe); in force_wake_get_any_engine() 317 fw_ref = xe_force_wake_constructor(gt_to_fw(hwe->gt), domain); in force_wake_get_any_engine() 319 *phwe = hwe; /* valid forcewake */ in force_wake_get_any_engine() 330 struct xe_hw_engine *hwe; in show_run_ticks() local [all …]
|
| H A D | xe_rtp.h | 530 const struct xe_hw_engine *hwe); 542 const struct xe_hw_engine *hwe); 562 const struct xe_hw_engine *hwe); 575 const struct xe_hw_engine *hwe); 579 const struct xe_hw_engine *hwe); 583 const struct xe_hw_engine *hwe); 595 const struct xe_hw_engine *hwe); 607 const struct xe_hw_engine *hwe);
|
| H A D | xe_oa.c | 99 struct xe_hw_engine *hwe; member 472 if (stream->hwe->class != XE_ENGINE_CLASS_COMPUTE) in __oa_ccs_select() 475 val = REG_FIELD_PREP(OAG_OACONTROL_OA_CCS_SELECT_MASK, stream->hwe->instance); in __oa_ccs_select() 477 REG_FIELD_GET(OAG_OACONTROL_OA_CCS_SELECT_MASK, val) == stream->hwe->instance); in __oa_ccs_select() 771 OACTXCONTROL(stream->hwe->mmio_base), in xe_oa_configure_oar_context() 779 RING_CONTEXT_CONTROL(stream->hwe->mmio_base), in xe_oa_configure_oar_context() 796 OACTXCONTROL(stream->hwe->mmio_base), in xe_oa_configure_oac_context() 804 RING_CONTEXT_CONTROL(stream->hwe->mmio_base), in xe_oa_configure_oac_context() 820 switch (stream->hwe->class) { in xe_oa_configure_oa_context() 880 struct xe_gt *gt = stream->hwe->gt; in xe_oa_stream_destroy() [all …]
|
| H A D | xe_gt_ccs_mode.c | 51 struct xe_hw_engine *hwe; in __xe_gt_apply_ccs_mode() local 54 for_each_hw_engine(hwe, gt, id) { in __xe_gt_apply_ccs_mode() 55 if (hwe->class != XE_ENGINE_CLASS_COMPUTE) in __xe_gt_apply_ccs_mode() 58 if (hwe->logical_instance >= num_engines) in __xe_gt_apply_ccs_mode() 61 config |= BIT(hwe->instance) << XE_HW_ENGINE_CCS0; in __xe_gt_apply_ccs_mode() 68 mode |= CCS_MODE_CSLICE(cslice, hwe->instance); in __xe_gt_apply_ccs_mode()
|
| H A D | xe_guc_capture.c | 438 struct xe_hw_engine *hwe; in guc_capture_alloc_steered_lists() local 447 for_each_hw_engine(hwe, gt, id) { in guc_capture_alloc_steered_lists() 448 if (xe_hwe_to_guc_capture_class(hwe) == in guc_capture_alloc_steered_lists() 807 struct xe_hw_engine *hwe; in guc_capture_output_size_est() local 827 for_each_hw_engine(hwe, gt, id) { in guc_capture_output_size_est() 830 capture_class = xe_hwe_to_guc_capture_class(hwe); in guc_capture_output_size_est() 1570 read_reg_to_node(struct xe_hw_engine *hwe, const struct __guc_mmio_reg_descr_group *list, in read_reg_to_node() argument 1586 value = xe_hw_engine_mmio_read32(hwe, desc.reg); in read_reg_to_node() 1594 value = xe_gt_mcr_unicast_read(hwe->gt, XE_REG_MCR(desc.reg.addr), in read_reg_to_node() 1597 value = xe_mmio_read32(&hwe->gt->mmio, desc.reg); in read_reg_to_node() [all …]
|
| H A D | xe_tuning.c | 219 void xe_tuning_process_engine(struct xe_hw_engine *hwe) in xe_tuning_process_engine() argument 221 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_engine() 224 hwe->gt->tuning_active.engine, in xe_tuning_process_engine() 226 xe_rtp_process_to_sr(&ctx, &engine_tunings, &hwe->reg_sr, false); in xe_tuning_process_engine() 238 void xe_tuning_process_lrc(struct xe_hw_engine *hwe) in xe_tuning_process_lrc() argument 240 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_tuning_process_lrc() 243 hwe->gt->tuning_active.lrc, in xe_tuning_process_lrc() 245 xe_rtp_process_to_sr(&ctx, &lrc_tunings, &hwe->reg_lrc, true); in xe_tuning_process_lrc()
|
| H A D | xe_rtp_types.h | 39 struct xe_hw_engine *hwe); 114 const struct xe_hw_engine *hwe); 156 struct xe_hw_engine *hwe; member
|
| H A D | xe_pmu.c | 104 struct xe_hw_engine *hwe; in event_to_hwe() local 110 hwe = xe_hw_engine_lookup(xe, eci); in event_to_hwe() 111 if (!hwe || xe_hw_engine_is_reserved(hwe)) in event_to_hwe() 114 return hwe; in event_to_hwe() 278 struct xe_hw_engine *hwe; in read_engine_events() local 285 hwe = event_to_hwe(event); in read_engine_events() 287 val = xe_guc_engine_activity_active_ticks(>->uc.guc, hwe, function_id); in read_engine_events() 289 val = xe_guc_engine_activity_total_ticks(>->uc.guc, hwe, function_id); in read_engine_events()
|
| H A D | xe_hw_engine_class_sysfs.c | 626 struct xe_hw_engine *hwe; in xe_hw_engine_class_sysfs_init() local 642 for_each_hw_engine(hwe, gt, id) { in xe_hw_engine_class_sysfs_init() 646 if (hwe->class == XE_ENGINE_CLASS_OTHER || in xe_hw_engine_class_sysfs_init() 647 hwe->class == XE_ENGINE_CLASS_MAX) in xe_hw_engine_class_sysfs_init() 650 if ((class_mask >> hwe->class) & 1) in xe_hw_engine_class_sysfs_init() 653 class_mask |= 1 << hwe->class; in xe_hw_engine_class_sysfs_init() 654 name = xe_hw_engine_class_to_str(hwe->class); in xe_hw_engine_class_sysfs_init() 666 keclass->eclass = hwe->eclass; in xe_hw_engine_class_sysfs_init()
|
| H A D | xe_hw_engine_types.h | 159 void (*irq_handler)(struct xe_hw_engine *hwe, u16 intr_vec); 184 struct xe_hw_engine *hwe; member
|
| H A D | xe_gsc.c | 383 void xe_gsc_hwe_irq_handler(struct xe_hw_engine *hwe, u16 intr_vec) in xe_gsc_hwe_irq_handler() argument 385 struct xe_gt *gt = hwe->gt; in xe_gsc_hwe_irq_handler() 461 struct xe_hw_engine *hwe = xe_gt_hw_engine(gt, XE_ENGINE_CLASS_OTHER, 0, true); in xe_gsc_init_post_hwconfig() local 470 if (!hwe) in xe_gsc_init_post_hwconfig() 480 BIT(hwe->logical_instance), 1, hwe, in xe_gsc_init_post_hwconfig()
|
| H A D | xe_wa.c | 886 void xe_wa_process_engine(struct xe_hw_engine *hwe) in xe_wa_process_engine() argument 888 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_wa_process_engine() 890 xe_rtp_process_ctx_enable_active_tracking(&ctx, hwe->gt->wa_active.engine, in xe_wa_process_engine() 892 xe_rtp_process_to_sr(&ctx, &engine_was, &hwe->reg_sr, false); in xe_wa_process_engine() 903 void xe_wa_process_lrc(struct xe_hw_engine *hwe) in xe_wa_process_lrc() argument 905 struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); in xe_wa_process_lrc() 907 xe_rtp_process_ctx_enable_active_tracking(&ctx, hwe->gt->wa_active.lrc, in xe_wa_process_lrc() 909 xe_rtp_process_to_sr(&ctx, &lrc_was, &hwe->reg_lrc, true); in xe_wa_process_lrc()
|
| H A D | xe_execlist.h | 18 struct xe_hw_engine *hwe);
|
| H A D | xe_reg_whitelist.h | 21 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
|
| H A D | xe_gsc.h | 21 void xe_gsc_hwe_irq_handler(struct xe_hw_engine *hwe, u16 intr_vec);
|
| H A D | xe_execlist_types.h | 19 struct xe_hw_engine *hwe; member
|
| H A D | xe_oa_types.h | 200 struct xe_hw_engine *hwe; member
|
| H A D | xe_exec.c | 204 group = q->hwe->hw_engine_group; in xe_exec_ioctl()
|
| /linux/drivers/net/ethernet/airoha/ |
| H A D | airoha_ppe.c | 343 struct airoha_foe_entry *hwe, in airoha_ppe_foe_entry_prepare() argument 353 memset(hwe, 0, sizeof(*hwe)); in airoha_ppe_foe_entry_prepare() 362 hwe->ib1 = val; in airoha_ppe_foe_entry_prepare() 425 hwe->ipv4.orig_tuple.ports = ports_pad; in airoha_ppe_foe_entry_prepare() 427 hwe->ipv6.ports = ports_pad; in airoha_ppe_foe_entry_prepare() 430 airoha_ppe_foe_set_bridge_addrs(&hwe->bridge, &data->eth); in airoha_ppe_foe_entry_prepare() 431 hwe->bridge.data = qdata; in airoha_ppe_foe_entry_prepare() 432 hwe->bridge.ib2 = val; in airoha_ppe_foe_entry_prepare() 433 l2 = &hwe->bridge.l2.common; in airoha_ppe_foe_entry_prepare() 435 hwe->ipv6.data = qdata; in airoha_ppe_foe_entry_prepare() [all …]
|
| /linux/drivers/net/ethernet/mediatek/ |
| H A D | mtk_ppe.c | 518 struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash); in __mtk_foe_entry_clear() local 520 hwe->ib1 &= ~MTK_FOE_IB1_STATE; in __mtk_foe_entry_clear() 521 hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID); in __mtk_foe_entry_clear() 559 struct mtk_foe_entry *hwe; in mtk_flow_entry_update_l2() local 568 hwe = mtk_foe_get_entry(ppe, cur->hash); in mtk_flow_entry_update_l2() 569 ib1 = READ_ONCE(hwe->ib1); in mtk_flow_entry_update_l2() 591 struct mtk_foe_entry *hwe; in mtk_flow_entry_update() local 603 hwe = mtk_foe_get_entry(ppe, entry->hash); in mtk_flow_entry_update() 604 memcpy(&foe, hwe, ppe->eth->soc->foe_entry_size); in mtk_flow_entry_update() 622 struct mtk_foe_entry *hwe; in __mtk_foe_entry_commit() local [all …]
|
| /linux/drivers/gpu/drm/xe/tests/ |
| H A D | xe_rtp_test.c | 84 const struct xe_hw_engine *hwe) in match_yes() argument 90 const struct xe_hw_engine *hwe) in match_no() argument 283 static u32 bits_2_3_set(struct xe_gt *gt, struct xe_hw_engine *hwe) in bits_2_3_set() argument
|