diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2022-02-24 12:57:16 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2022-02-24 12:57:16 +0000 |
commit | adb631a0c004adb64751082221a26023d931dae0 (patch) | |
tree | 99ab788cdc192fd17162e46f5bced9dd2441bb8b | |
parent | ba407b882916e56451696102351c9b59af3ed49b (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.c | 8 |
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); } |