summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2022-02-24 12:57:16 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2022-02-24 12:57:16 +0000
commitadb631a0c004adb64751082221a26023d931dae0 (patch)
tree99ab788cdc192fd17162e46f5bced9dd2441bb8b
parentba407b882916e56451696102351c9b59af3ed49b (diff)
drm/amdgpu: skipping SDMA hw_init and hw_fini for S0ix.
From Rajib Mahapatra 960c8a55016bece26140eef7a8077e9dc3709098 in linux 5.15.y/5.15.25 f8f4e2a518347063179def4e64580b2d28233d03 in mainline linux
-rw-r--r--sys/dev/pci/drm/amd/amdgpu/sdma_v4_0.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/amd/amdgpu/sdma_v4_0.c b/sys/dev/pci/drm/amd/amdgpu/sdma_v4_0.c
index 4e2df082aa5..7085d8a8d36 100644
--- a/sys/dev/pci/drm/amd/amdgpu/sdma_v4_0.c
+++ b/sys/dev/pci/drm/amd/amdgpu/sdma_v4_0.c
@@ -2062,6 +2062,10 @@ static int sdma_v4_0_suspend(void *handle)
{
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+ /* SMU saves SDMA state for us */
+ if (adev->in_s0ix)
+ return 0;
+
return sdma_v4_0_hw_fini(adev);
}
@@ -2069,6 +2073,10 @@ static int sdma_v4_0_resume(void *handle)
{
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+ /* SMU restores SDMA state for us */
+ if (adev->in_s0ix)
+ return 0;
+
return sdma_v4_0_hw_init(adev);
}