drm/amdgpu: move s0ix check into amdgpu_device_ip_suspend_phase2 (v3)
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 12 Mar 2021 20:33:46 +0000 (15:33 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 22 Mar 2021 19:24:45 +0000 (15:24 -0400)
No functional change.

v2: use correct dev
v3: rework

Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index d102893..a2e15c6 100644 (file)
@@ -2721,6 +2721,11 @@ static int amdgpu_device_ip_suspend_phase2(struct amdgpu_device *adev)
 {
        int i, r;
 
+       if (adev->in_s0ix) {
+               amdgpu_gfx_state_change_set(adev, sGpuChangeState_D3Entry);
+               return 0;
+       }
+
        for (i = adev->num_ip_blocks - 1; i >= 0; i--) {
                if (!adev->ip_blocks[i].status.valid)
                        continue;
@@ -3697,10 +3702,7 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)
 
        amdgpu_fence_driver_suspend(adev);
 
-       if (!adev->in_s0ix || amdgpu_in_reset(adev))
-               r = amdgpu_device_ip_suspend_phase2(adev);
-       else
-               amdgpu_gfx_state_change_set(adev, sGpuChangeState_D3Entry);
+       r = amdgpu_device_ip_suspend_phase2(adev);
        /* evict remaining vram memory
         * This second call to evict vram is to evict the gart page table
         * using the CPU.