mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
drm/xe: Only toggle scheduling in TDR if GuC is running
If the firmware is not running during TDR (e.g., when the driver is unloading), there's no need to toggle scheduling in the GuC. In such cases, skip this step. v4: - Bail on wait UC not running (Niranjana) Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> Link: https://patch.msgid.link/20260110012739.2888434-4-matthew.brost@intel.com
This commit is contained in:
parent
95f27831ee
commit
dd1ef5e245
|
|
@ -1638,7 +1638,7 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
|
|||
if (exec_queue_reset(q))
|
||||
err = -EIO;
|
||||
|
||||
if (!exec_queue_destroyed(q)) {
|
||||
if (!exec_queue_destroyed(q) && xe_uc_fw_is_running(&guc->fw)) {
|
||||
/*
|
||||
* Wait for any pending G2H to flush out before
|
||||
* modifying state
|
||||
|
|
@ -1673,6 +1673,7 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
|
|||
*/
|
||||
smp_rmb();
|
||||
ret = wait_event_timeout(guc->ct.wq,
|
||||
!xe_uc_fw_is_running(&guc->fw) ||
|
||||
!exec_queue_pending_disable(q) ||
|
||||
xe_guc_read_stopped(guc) ||
|
||||
vf_recovery(guc), HZ * 5);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user