drm/amdgpu: for S0ix, skip SDMA 5.x+ suspend/resume
authorjsg <jsg@openbsd.org>
Mon, 17 Apr 2023 05:19:09 +0000 (05:19 +0000)
committerjsg <jsg@openbsd.org>
Mon, 17 Apr 2023 05:19:09 +0000 (05:19 +0000)
From Alex Deucher
73ca74fc7ab6c1679c3b2720579c0c20b73a9764 in linux-6.1.y/6.1.24
2a7798ea7390fd78f191c9e9bf68f5581d3b4a02 in mainline linux

sys/dev/pci/drm/amd/amdgpu/amdgpu_device.c

index 9149a5d..c68e881 100644 (file)
@@ -3066,6 +3066,12 @@ static int amdgpu_device_ip_suspend_phase2(struct amdgpu_device *adev)
                     adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_MES))
                        continue;
 
+               /* SDMA 5.x+ is part of GFX power domain so it's covered by GFXOFF */
+               if (adev->in_s0ix &&
+                   (adev->ip_versions[SDMA0_HWIP][0] >= IP_VERSION(5, 0, 0)) &&
+                   (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_SDMA))
+                       continue;
+
                /* XXX handle errors */
                r = adev->ip_blocks[i].version->funcs->suspend(adev);
                /* XXX handle errors */