OSDN Git Service

Revert "drm/amdgpu: stop scheduler when calling hw_fini (v2)"
authorLen Brown <len.brown@intel.com>
Sun, 9 Jan 2022 18:11:37 +0000 (13:11 -0500)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 9 Jan 2022 18:32:16 +0000 (10:32 -0800)
This reverts commit f7d6779df642720e22bffd449e683bb8690bd3bf.

This bisected regression has impacted suspend-resume stability
since 5.15-rc1. It regressed -stable via 5.14.10.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=215315
Fixes: f7d6779df64 ("drm/amdgpu: stop scheduler when calling hw_fini (v2)")
Cc: Guchun Chen <guchun.chen@amd.com>
Cc: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: <stable@vger.kernel.org> # 5.14+
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c

index 9afd11c..45977a7 100644 (file)
@@ -547,9 +547,6 @@ void amdgpu_fence_driver_hw_fini(struct amdgpu_device *adev)
                if (!ring || !ring->fence_drv.initialized)
                        continue;
 
-               if (!ring->no_scheduler)
-                       drm_sched_stop(&ring->sched, NULL);
-
                /* You can't wait for HW to signal if it's gone */
                if (!drm_dev_is_unplugged(adev_to_drm(adev)))
                        r = amdgpu_fence_wait_empty(ring);
@@ -609,11 +606,6 @@ void amdgpu_fence_driver_hw_init(struct amdgpu_device *adev)
                if (!ring || !ring->fence_drv.initialized)
                        continue;
 
-               if (!ring->no_scheduler) {
-                       drm_sched_resubmit_jobs(&ring->sched);
-                       drm_sched_start(&ring->sched, true);
-               }
-
                /* enable the interrupt */
                if (ring->fence_drv.irq_src)
                        amdgpu_irq_get(adev, ring->fence_drv.irq_src,