Lines Matching full:gt
70 struct xe_gt *gt = arg; in gt_fini() local
72 destroy_workqueue(gt->ordered_wq); in gt_fini()
77 struct xe_gt *gt; in xe_gt_alloc() local
80 gt = drmm_kzalloc(&tile_to_xe(tile)->drm, sizeof(*gt), GFP_KERNEL); in xe_gt_alloc()
81 if (!gt) in xe_gt_alloc()
84 gt->tile = tile; in xe_gt_alloc()
85 gt->ordered_wq = alloc_ordered_workqueue("gt-ordered-wq", in xe_gt_alloc()
88 err = drmm_add_action_or_reset(>_to_xe(gt)->drm, gt_fini, gt); in xe_gt_alloc()
92 return gt; in xe_gt_alloc()
95 void xe_gt_sanitize(struct xe_gt *gt) in xe_gt_sanitize() argument
101 xe_guc_submit_disable(>->uc.guc); in xe_gt_sanitize()
104 static void xe_gt_enable_host_l2_vram(struct xe_gt *gt) in xe_gt_enable_host_l2_vram() argument
109 if (!XE_GT_WA(gt, 16023588340)) in xe_gt_enable_host_l2_vram()
112 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT); in xe_gt_enable_host_l2_vram()
116 if (xe_gt_is_main_type(gt)) { in xe_gt_enable_host_l2_vram()
117 reg = xe_gt_mcr_unicast_read_any(gt, XE2_GAMREQSTRM_CTRL); in xe_gt_enable_host_l2_vram()
119 xe_gt_mcr_multicast_write(gt, XE2_GAMREQSTRM_CTRL, reg); in xe_gt_enable_host_l2_vram()
122 xe_gt_mcr_multicast_write(gt, XEHPC_L3CLOS_MASK(3), 0xF); in xe_gt_enable_host_l2_vram()
123 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_enable_host_l2_vram()
126 static void xe_gt_disable_host_l2_vram(struct xe_gt *gt) in xe_gt_disable_host_l2_vram() argument
131 if (!XE_GT_WA(gt, 16023588340)) in xe_gt_disable_host_l2_vram()
134 if (xe_gt_is_media_type(gt)) in xe_gt_disable_host_l2_vram()
137 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT); in xe_gt_disable_host_l2_vram()
141 reg = xe_gt_mcr_unicast_read_any(gt, XE2_GAMREQSTRM_CTRL); in xe_gt_disable_host_l2_vram()
143 xe_gt_mcr_multicast_write(gt, XE2_GAMREQSTRM_CTRL, reg); in xe_gt_disable_host_l2_vram()
145 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_disable_host_l2_vram()
175 static int emit_nop_job(struct xe_gt *gt, struct xe_exec_queue *q) in emit_nop_job() argument
180 bb = xe_bb_new(gt, 4, false); in emit_nop_job()
190 static int emit_wa_job(struct xe_gt *gt, struct xe_exec_queue *q) in emit_wa_job() argument
219 bb_len += xe_gt_lrc_size(gt, q->hwe->class) / sizeof(u32); in emit_wa_job()
221 xe_gt_dbg(gt, "LRC %s WA job: %zu dwords\n", q->hwe->name, bb_len); in emit_wa_job()
223 bb = xe_bb_new(gt, bb_len, false); in emit_wa_job()
252 xe_gt_dbg(gt, "REG[0x%x] = 0x%08x", reg.addr, val); in emit_wa_job()
288 xe_gt_dbg(gt, "REG[%#x] = ~%#x|%#x\n", in emit_wa_job()
314 int xe_gt_record_default_lrcs(struct xe_gt *gt) in xe_gt_record_default_lrcs() argument
316 struct xe_device *xe = gt_to_xe(gt); in xe_gt_record_default_lrcs()
321 for_each_hw_engine(hwe, gt, id) { in xe_gt_record_default_lrcs()
325 if (gt->default_lrc[hwe->class]) in xe_gt_record_default_lrcs()
334 xe_gt_lrc_size(gt, hwe->class), in xe_gt_record_default_lrcs()
343 xe_gt_err(gt, "hwe %s: xe_exec_queue_create failed (%pe)\n", in xe_gt_record_default_lrcs()
349 err = emit_wa_job(gt, q); in xe_gt_record_default_lrcs()
351 xe_gt_err(gt, "hwe %s: emit_wa_job failed (%pe) guc_id=%u\n", in xe_gt_record_default_lrcs()
360 xe_gt_err(gt, "hwe %s: nop xe_exec_queue_create failed (%pe)\n", in xe_gt_record_default_lrcs()
366 err = emit_nop_job(gt, nop_q); in xe_gt_record_default_lrcs()
368 xe_gt_err(gt, "hwe %s: nop emit_nop_job failed (%pe) guc_id=%u\n", in xe_gt_record_default_lrcs()
376 xe_gt_lrc_size(gt, hwe->class)); in xe_gt_record_default_lrcs()
378 gt->default_lrc[hwe->class] = default_lrc; in xe_gt_record_default_lrcs()
390 int xe_gt_init_early(struct xe_gt *gt) in xe_gt_init_early() argument
395 if (IS_SRIOV_PF(gt_to_xe(gt))) { in xe_gt_init_early()
396 err = xe_gt_sriov_pf_init_early(gt); in xe_gt_init_early()
401 xe_reg_sr_init(>->reg_sr, "GT", gt_to_xe(gt)); in xe_gt_init_early()
403 err = xe_wa_gt_init(gt); in xe_gt_init_early()
407 err = xe_tuning_init(gt); in xe_gt_init_early()
411 xe_wa_process_gt_oob(gt); in xe_gt_init_early()
413 xe_force_wake_init_gt(gt, gt_to_fw(gt)); in xe_gt_init_early()
414 spin_lock_init(>->global_invl_lock); in xe_gt_init_early()
416 err = xe_gt_tlb_inval_init_early(gt); in xe_gt_init_early()
420 xe_mocs_init_early(gt); in xe_gt_init_early()
423 * Only after this point can GT-specific MMIO operations in xe_gt_init_early()
427 xe_gt_mmio_init(gt); in xe_gt_init_early()
429 err = xe_uc_init_noalloc(>->uc); in xe_gt_init_early()
433 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT); in xe_gt_init_early()
437 xe_gt_mcr_init_early(gt); in xe_gt_init_early()
438 xe_pat_init(gt); in xe_gt_init_early()
439 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_init_early()
444 static void dump_pat_on_error(struct xe_gt *gt) in dump_pat_on_error() argument
449 snprintf(prefix, sizeof(prefix), "[GT%u Error]", gt->info.id); in dump_pat_on_error()
450 p = drm_dbg_printer(>_to_xe(gt)->drm, DRM_UT_DRIVER, prefix); in dump_pat_on_error()
452 xe_pat_dump(gt, &p); in dump_pat_on_error()
455 static int gt_init_with_gt_forcewake(struct xe_gt *gt) in gt_init_with_gt_forcewake() argument
460 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT); in gt_init_with_gt_forcewake()
464 err = xe_uc_init(>->uc); in gt_init_with_gt_forcewake()
468 xe_gt_topology_init(gt); in gt_init_with_gt_forcewake()
469 xe_gt_mcr_init(gt); in gt_init_with_gt_forcewake()
470 xe_gt_enable_host_l2_vram(gt); in gt_init_with_gt_forcewake()
472 if (xe_gt_is_main_type(gt)) { in gt_init_with_gt_forcewake()
473 err = xe_ggtt_init(gt_to_tile(gt)->mem.ggtt); in gt_init_with_gt_forcewake()
476 if (IS_SRIOV_PF(gt_to_xe(gt))) in gt_init_with_gt_forcewake()
477 xe_lmtt_init(>_to_tile(gt)->sriov.pf.lmtt); in gt_init_with_gt_forcewake()
481 xe_irq_enable_hwe(gt); in gt_init_with_gt_forcewake()
484 xe_gt_mcr_init(gt); in gt_init_with_gt_forcewake()
486 err = xe_hw_engines_init_early(gt); in gt_init_with_gt_forcewake()
488 dump_pat_on_error(gt); in gt_init_with_gt_forcewake()
492 err = xe_hw_engine_class_sysfs_init(gt); in gt_init_with_gt_forcewake()
497 err = xe_gt_ccs_mode_sysfs_init(gt); in gt_init_with_gt_forcewake()
505 gt->info.gmdid = xe_mmio_read32(>->mmio, GMD_ID); in gt_init_with_gt_forcewake()
507 xe_force_wake_put(gt_to_fw(gt), fw_ref); in gt_init_with_gt_forcewake()
511 xe_force_wake_put(gt_to_fw(gt), fw_ref); in gt_init_with_gt_forcewake()
516 static int gt_init_with_all_forcewake(struct xe_gt *gt) in gt_init_with_all_forcewake() argument
521 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in gt_init_with_all_forcewake()
527 xe_gt_mcr_set_implicit_defaults(gt); in gt_init_with_all_forcewake()
528 xe_wa_process_gt(gt); in gt_init_with_all_forcewake()
529 xe_tuning_process_gt(gt); in gt_init_with_all_forcewake()
530 xe_reg_sr_apply_mmio(>->reg_sr, gt); in gt_init_with_all_forcewake()
532 err = xe_gt_clock_init(gt); in gt_init_with_all_forcewake()
536 xe_mocs_init(gt); in gt_init_with_all_forcewake()
537 err = xe_execlist_init(gt); in gt_init_with_all_forcewake()
541 err = xe_hw_engines_init(gt); in gt_init_with_all_forcewake()
545 err = xe_uc_init_post_hwconfig(>->uc); in gt_init_with_all_forcewake()
549 if (xe_gt_is_main_type(gt)) { in gt_init_with_all_forcewake()
553 if (gt_to_xe(gt)->info.has_usm) { in gt_init_with_all_forcewake()
554 struct xe_device *xe = gt_to_xe(gt); in gt_init_with_all_forcewake()
556 gt->usm.bb_pool = xe_sa_bo_manager_init(gt_to_tile(gt), in gt_init_with_all_forcewake()
558 if (IS_ERR(gt->usm.bb_pool)) { in gt_init_with_all_forcewake()
559 err = PTR_ERR(gt->usm.bb_pool); in gt_init_with_all_forcewake()
565 if (xe_gt_is_main_type(gt)) { in gt_init_with_all_forcewake()
566 struct xe_tile *tile = gt_to_tile(gt); in gt_init_with_all_forcewake()
573 err = xe_uc_load_hw(>->uc); in gt_init_with_all_forcewake()
578 if (xe_gt_ccs_mode_enabled(gt)) { in gt_init_with_all_forcewake()
579 gt->ccs_mode = 1; in gt_init_with_all_forcewake()
580 xe_gt_apply_ccs_mode(gt); in gt_init_with_all_forcewake()
583 if (IS_SRIOV_PF(gt_to_xe(gt)) && xe_gt_is_main_type(gt)) in gt_init_with_all_forcewake()
584 xe_lmtt_init_hw(>_to_tile(gt)->sriov.pf.lmtt); in gt_init_with_all_forcewake()
586 if (IS_SRIOV_PF(gt_to_xe(gt))) { in gt_init_with_all_forcewake()
587 xe_gt_sriov_pf_init(gt); in gt_init_with_all_forcewake()
588 xe_gt_sriov_pf_init_hw(gt); in gt_init_with_all_forcewake()
591 xe_force_wake_put(gt_to_fw(gt), fw_ref); in gt_init_with_all_forcewake()
596 xe_force_wake_put(gt_to_fw(gt), fw_ref); in gt_init_with_all_forcewake()
603 struct xe_gt *gt = arg; in xe_gt_fini() local
607 xe_hw_fence_irq_finish(>->fence_irq[i]); in xe_gt_fini()
609 xe_gt_disable_host_l2_vram(gt); in xe_gt_fini()
612 int xe_gt_init(struct xe_gt *gt) in xe_gt_init() argument
617 INIT_WORK(>->reset.worker, gt_reset_worker); in xe_gt_init()
620 gt->ring_ops[i] = xe_ring_ops_get(gt, i); in xe_gt_init()
621 xe_hw_fence_irq_init(>->fence_irq[i]); in xe_gt_init()
624 err = devm_add_action_or_reset(gt_to_xe(gt)->drm.dev, xe_gt_fini, gt); in xe_gt_init()
628 err = xe_gt_sysfs_init(gt); in xe_gt_init()
632 err = gt_init_with_gt_forcewake(gt); in xe_gt_init()
636 err = xe_gt_pagefault_init(gt); in xe_gt_init()
640 err = xe_gt_idle_init(>->gtidle); in xe_gt_init()
644 err = xe_gt_freq_init(gt); in xe_gt_init()
648 xe_force_wake_init_engines(gt, gt_to_fw(gt)); in xe_gt_init()
650 err = gt_init_with_all_forcewake(gt); in xe_gt_init()
654 xe_gt_record_user_engines(gt); in xe_gt_init()
656 err = xe_eu_stall_init(gt); in xe_gt_init()
664 * xe_gt_mmio_init() - Initialize GT's MMIO access
665 * @gt: the GT object
667 * Initialize GT's MMIO accessor, which will be used to access registers inside
668 * this GT.
670 void xe_gt_mmio_init(struct xe_gt *gt) in xe_gt_mmio_init() argument
672 struct xe_tile *tile = gt_to_tile(gt); in xe_gt_mmio_init()
675 xe_mmio_init(>->mmio, tile, tile->mmio.regs, tile->mmio.regs_size); in xe_gt_mmio_init()
677 if (gt->info.type == XE_GT_TYPE_MEDIA) { in xe_gt_mmio_init()
678 gt->mmio.adj_offset = MEDIA_GT_GSI_OFFSET; in xe_gt_mmio_init()
679 gt->mmio.adj_limit = MEDIA_GT_GSI_LENGTH; in xe_gt_mmio_init()
681 gt->mmio.adj_offset = 0; in xe_gt_mmio_init()
682 gt->mmio.adj_limit = 0; in xe_gt_mmio_init()
686 gt->mmio.sriov_vf_gt = gt; in xe_gt_mmio_init()
689 void xe_gt_record_user_engines(struct xe_gt *gt) in xe_gt_record_user_engines() argument
694 gt->user_engines.mask = 0; in xe_gt_record_user_engines()
695 memset(gt->user_engines.instances_per_class, 0, in xe_gt_record_user_engines()
696 sizeof(gt->user_engines.instances_per_class)); in xe_gt_record_user_engines()
698 for_each_hw_engine(hwe, gt, id) { in xe_gt_record_user_engines()
702 gt->user_engines.mask |= BIT_ULL(id); in xe_gt_record_user_engines()
703 gt->user_engines.instances_per_class[hwe->class]++; in xe_gt_record_user_engines()
706 xe_gt_assert(gt, (gt->user_engines.mask | gt->info.engine_mask) in xe_gt_record_user_engines()
707 == gt->info.engine_mask); in xe_gt_record_user_engines()
710 static int do_gt_reset(struct xe_gt *gt) in do_gt_reset() argument
714 if (IS_SRIOV_VF(gt_to_xe(gt))) in do_gt_reset()
715 return xe_gt_sriov_vf_reset(gt); in do_gt_reset()
717 xe_gsc_wa_14015076503(gt, true); in do_gt_reset()
719 xe_mmio_write32(>->mmio, GDRST, GRDOM_FULL); in do_gt_reset()
720 err = xe_mmio_wait32(>->mmio, GDRST, GRDOM_FULL, 0, 5000, NULL, false); in do_gt_reset()
722 xe_gt_err(gt, "failed to clear GRDOM_FULL (%pe)\n", in do_gt_reset()
725 xe_gsc_wa_14015076503(gt, false); in do_gt_reset()
730 static int vf_gt_restart(struct xe_gt *gt) in vf_gt_restart() argument
734 err = xe_uc_sanitize_reset(>->uc); in vf_gt_restart()
738 err = xe_uc_load_hw(>->uc); in vf_gt_restart()
742 err = xe_uc_start(>->uc); in vf_gt_restart()
749 static int do_gt_restart(struct xe_gt *gt) in do_gt_restart() argument
755 if (IS_SRIOV_VF(gt_to_xe(gt))) in do_gt_restart()
756 return vf_gt_restart(gt); in do_gt_restart()
758 xe_pat_init(gt); in do_gt_restart()
760 xe_gt_enable_host_l2_vram(gt); in do_gt_restart()
762 xe_gt_mcr_set_implicit_defaults(gt); in do_gt_restart()
763 xe_reg_sr_apply_mmio(>->reg_sr, gt); in do_gt_restart()
765 err = xe_wopcm_init(>->uc.wopcm); in do_gt_restart()
769 for_each_hw_engine(hwe, gt, id) in do_gt_restart()
772 err = xe_uc_sanitize_reset(>->uc); in do_gt_restart()
776 err = xe_uc_load_hw(>->uc); in do_gt_restart()
780 if (IS_SRIOV_PF(gt_to_xe(gt)) && xe_gt_is_main_type(gt)) in do_gt_restart()
781 xe_lmtt_init_hw(>_to_tile(gt)->sriov.pf.lmtt); in do_gt_restart()
783 if (IS_SRIOV_PF(gt_to_xe(gt))) in do_gt_restart()
784 xe_gt_sriov_pf_init_hw(gt); in do_gt_restart()
786 xe_mocs_init(gt); in do_gt_restart()
787 err = xe_uc_start(>->uc); in do_gt_restart()
791 for_each_hw_engine(hwe, gt, id) in do_gt_restart()
792 xe_reg_sr_apply_mmio(&hwe->reg_sr, gt); in do_gt_restart()
795 xe_gt_apply_ccs_mode(gt); in do_gt_restart()
797 /* Restore GT freq to expected values */ in do_gt_restart()
798 xe_gt_sanitize_freq(gt); in do_gt_restart()
800 if (IS_SRIOV_PF(gt_to_xe(gt))) in do_gt_restart()
801 xe_gt_sriov_pf_restart(gt); in do_gt_restart()
806 static int gt_wait_reset_unblock(struct xe_gt *gt) in gt_wait_reset_unblock() argument
808 return xe_guc_wait_reset_unblock(>->uc.guc); in gt_wait_reset_unblock()
811 static int gt_reset(struct xe_gt *gt) in gt_reset() argument
816 if (xe_device_wedged(gt_to_xe(gt))) { in gt_reset()
821 /* We only support GT resets with GuC submission */ in gt_reset()
822 if (!xe_device_uc_enabled(gt_to_xe(gt))) { in gt_reset()
827 xe_gt_info(gt, "reset started\n"); in gt_reset()
829 err = gt_wait_reset_unblock(gt); in gt_reset()
831 xe_gt_warn(gt, "reset block failed to get lifted"); in gt_reset()
838 xe_gt_sanitize(gt); in gt_reset()
840 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in gt_reset()
846 if (IS_SRIOV_PF(gt_to_xe(gt))) in gt_reset()
847 xe_gt_sriov_pf_stop_prepare(gt); in gt_reset()
849 xe_uc_gucrc_disable(>->uc); in gt_reset()
850 xe_uc_stop_prepare(>->uc); in gt_reset()
851 xe_gt_pagefault_reset(gt); in gt_reset()
853 xe_uc_stop(>->uc); in gt_reset()
855 xe_tlb_inval_reset(>->tlb_inval); in gt_reset()
857 err = do_gt_reset(gt); in gt_reset()
861 err = do_gt_restart(gt); in gt_reset()
865 xe_force_wake_put(gt_to_fw(gt), fw_ref); in gt_reset()
866 xe_pm_runtime_put(gt_to_xe(gt)); in gt_reset()
868 xe_gt_info(gt, "reset done\n"); in gt_reset()
873 xe_force_wake_put(gt_to_fw(gt), fw_ref); in gt_reset()
874 XE_WARN_ON(xe_uc_start(>->uc)); in gt_reset()
876 xe_gt_err(gt, "reset failed (%pe)\n", ERR_PTR(err)); in gt_reset()
878 xe_device_declare_wedged(gt_to_xe(gt)); in gt_reset()
880 xe_pm_runtime_put(gt_to_xe(gt)); in gt_reset()
887 struct xe_gt *gt = container_of(w, typeof(*gt), reset.worker); in gt_reset_worker() local
889 gt_reset(gt); in gt_reset_worker()
892 void xe_gt_reset_async(struct xe_gt *gt) in xe_gt_reset_async() argument
894 xe_gt_info(gt, "trying reset from %ps\n", __builtin_return_address(0)); in xe_gt_reset_async()
897 if (!xe_fault_inject_gt_reset() && xe_uc_reset_prepare(>->uc)) in xe_gt_reset_async()
900 xe_gt_info(gt, "reset queued\n"); in xe_gt_reset_async()
901 xe_pm_runtime_get_noresume(gt_to_xe(gt)); in xe_gt_reset_async()
902 if (!queue_work(gt->ordered_wq, >->reset.worker)) in xe_gt_reset_async()
903 xe_pm_runtime_put(gt_to_xe(gt)); in xe_gt_reset_async()
906 void xe_gt_suspend_prepare(struct xe_gt *gt) in xe_gt_suspend_prepare() argument
910 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in xe_gt_suspend_prepare()
912 xe_uc_suspend_prepare(>->uc); in xe_gt_suspend_prepare()
914 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_suspend_prepare()
917 int xe_gt_suspend(struct xe_gt *gt) in xe_gt_suspend() argument
922 xe_gt_dbg(gt, "suspending\n"); in xe_gt_suspend()
923 xe_gt_sanitize(gt); in xe_gt_suspend()
925 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in xe_gt_suspend()
929 err = xe_uc_suspend(>->uc); in xe_gt_suspend()
933 xe_gt_idle_disable_pg(gt); in xe_gt_suspend()
935 xe_gt_disable_host_l2_vram(gt); in xe_gt_suspend()
937 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_suspend()
938 xe_gt_dbg(gt, "suspended\n"); in xe_gt_suspend()
945 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_suspend()
946 xe_gt_err(gt, "suspend failed (%pe)\n", ERR_PTR(err)); in xe_gt_suspend()
951 void xe_gt_shutdown(struct xe_gt *gt) in xe_gt_shutdown() argument
955 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in xe_gt_shutdown()
956 do_gt_reset(gt); in xe_gt_shutdown()
957 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_shutdown()
962 * @gt: the GT object
964 * Called after driver init/GSC load completes to restore GT frequencies if we
967 int xe_gt_sanitize_freq(struct xe_gt *gt) in xe_gt_sanitize_freq() argument
971 if ((!xe_uc_fw_is_available(>->uc.gsc.fw) || in xe_gt_sanitize_freq()
972 xe_uc_fw_is_loaded(>->uc.gsc.fw) || in xe_gt_sanitize_freq()
973 xe_uc_fw_is_in_error_state(>->uc.gsc.fw)) && in xe_gt_sanitize_freq()
974 XE_GT_WA(gt, 22019338487)) in xe_gt_sanitize_freq()
975 ret = xe_guc_pc_restore_stashed_freq(>->uc.guc.pc); in xe_gt_sanitize_freq()
980 int xe_gt_resume(struct xe_gt *gt) in xe_gt_resume() argument
985 xe_gt_dbg(gt, "resuming\n"); in xe_gt_resume()
986 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in xe_gt_resume()
990 err = do_gt_restart(gt); in xe_gt_resume()
994 xe_gt_idle_enable_pg(gt); in xe_gt_resume()
996 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_resume()
997 xe_gt_dbg(gt, "resumed\n"); in xe_gt_resume()
1004 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_gt_resume()
1005 xe_gt_err(gt, "resume failed (%pe)\n", ERR_PTR(err)); in xe_gt_resume()
1010 struct xe_hw_engine *xe_gt_hw_engine(struct xe_gt *gt, in xe_gt_hw_engine() argument
1017 for_each_hw_engine(hwe, gt, id) in xe_gt_hw_engine()
1026 struct xe_hw_engine *xe_gt_any_hw_engine_by_reset_domain(struct xe_gt *gt, in xe_gt_any_hw_engine_by_reset_domain() argument
1032 for_each_hw_engine(hwe, gt, id) { in xe_gt_any_hw_engine_by_reset_domain()
1049 struct xe_hw_engine *xe_gt_any_hw_engine(struct xe_gt *gt) in xe_gt_any_hw_engine() argument
1054 for_each_hw_engine(hwe, gt, id) in xe_gt_any_hw_engine()
1061 * xe_gt_declare_wedged() - Declare GT wedged
1062 * @gt: the GT object
1064 * Wedge the GT which stops all submission, saves desired debug state, and
1067 void xe_gt_declare_wedged(struct xe_gt *gt) in xe_gt_declare_wedged() argument
1069 xe_gt_assert(gt, gt_to_xe(gt)->wedged.mode); in xe_gt_declare_wedged()
1071 xe_uc_declare_wedged(>->uc); in xe_gt_declare_wedged()
1072 xe_tlb_inval_reset(>->tlb_inval); in xe_gt_declare_wedged()