There're some other suspend abort cases which can call the noirq
suspend except for executing _S3 method. In those cases need to
process as incomplete suspendsion.

Signed-off-by: Prike Liang <prike.li...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/soc15.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c 
b/drivers/gpu/drm/amd/amdgpu/soc15.c
index 8d16dacdc172..cf701bb8fc79 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -587,11 +587,13 @@ static bool soc15_need_reset_on_resume(struct 
amdgpu_device *adev)
         * 2) S3 suspend abort and TOS already launched.
         */
        if (adev->flags & AMD_IS_APU && adev->in_s3 &&
-                       !adev->suspend_complete &&
-                       sol_reg)
+                       sol_reg) {
+               adev->suspend_complete = false;
                return true;
-
-       return false;
+       } else {
+               adev->suspend_complete = true;
+               return false;
+       }
 }
 
 static int soc15_asic_reset(struct amdgpu_device *adev)
-- 
2.34.1

Reply via email to