drm/amdgpu: Avoid kcq disable during reset
authorLijo Lazar <lijo.lazar@amd.com>
Tue, 5 Nov 2024 05:34:09 +0000 (11:04 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 8 Nov 2024 16:11:42 +0000 (11:11 -0500)
Reset sequence indicates that hardware already ran into a bad state.
Avoid sending unmap queue request to reset KCQ. This will also cover RAS
error scenarios which need a reset to recover, hence remove the check.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c

index 5136cb3..826a41b 100644 (file)
@@ -515,15 +515,7 @@ int amdgpu_gfx_disable_kcq(struct amdgpu_device *adev, int xcc_id)
        if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues)
                return -EINVAL;
 
-       if (!kiq_ring->sched.ready || adev->job_hang)
-               return 0;
-       /**
-        * This is workaround: only skip kiq_ring test
-        * during ras recovery in suspend stage for gfx9.4.3
-        */
-       if ((amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
-            amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4)) &&
-           amdgpu_ras_in_recovery(adev))
+       if (!kiq_ring->sched.ready || adev->job_hang || amdgpu_in_reset(adev))
                return 0;
 
        spin_lock(&kiq->ring_lock);