[PATCH 1/2][SRU][J][OEM-5.14] UBUNTU: SAUCE: drm/amdgpu: always reset the asic in suspend (v2)
AceLan Kao
acelan.kao at canonical.com
Mon Dec 27 08:28:26 UTC 2021
From: Alex Deucher <alexander.deucher at amd.com>
BugLink: https://bugs.launchpad.net/bugs/1955790
If the platform suspend happens to fail and the power rail
is not turned off, the GPU will be in an unknown state on
resume, so reset the asic so that it will be in a known
good state on resume even if the platform suspend failed.
v2: handle s0ix
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
Acked-by: Luben Tuikov <luben.tuikov at amd.com>
Acked-by: Evan Quan <evan.quan at amd.com>
(cherry picked from commit
https://patchwork.freedesktop.org/patch/463002/)
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao at canonical.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 971c5b8e75dc5..7258a14aa7bf3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1479,7 +1479,10 @@ static int amdgpu_pmops_suspend(struct device *dev)
adev->in_s3 = true;
r = amdgpu_device_suspend(drm_dev, true);
adev->in_s3 = false;
-
+ if (r)
+ return r;
+ if (!adev->in_s0ix)
+ r = amdgpu_asic_reset(adev);
return r;
}
--
2.25.1
More information about the kernel-team
mailing list