It's handled by GFXOFF for SDMA 5.x and SMU saves the state on
SDMA 4.x.

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 64660a41d53c..a99b327d5f09 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2581,9 +2581,10 @@ int amdgpu_device_set_cg_state(struct amdgpu_device 
*adev,
                i = state == AMD_CG_STATE_GATE ? j : adev->num_ip_blocks - j - 
1;
                if (!adev->ip_blocks[i].status.late_initialized)
                        continue;
-               /* skip CG for GFX on S0ix */
+               /* skip CG for GFX, SDMA on S0ix */
                if (adev->in_s0ix &&
-                   adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX)
+                   (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX 
||
+                    adev->ip_blocks[i].version->type == 
AMD_IP_BLOCK_TYPE_SDMA))
                        continue;
                /* skip CG for VCE/UVD, it's handled specially */
                if (adev->ip_blocks[i].version->type != AMD_IP_BLOCK_TYPE_UVD &&
@@ -2617,9 +2618,10 @@ int amdgpu_device_set_pg_state(struct amdgpu_device 
*adev,
                i = state == AMD_PG_STATE_GATE ? j : adev->num_ip_blocks - j - 
1;
                if (!adev->ip_blocks[i].status.late_initialized)
                        continue;
-               /* skip PG for GFX on S0ix */
+               /* skip PG for GFX, SDMA on S0ix */
                if (adev->in_s0ix &&
-                   adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX)
+                   (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX 
||
+                    adev->ip_blocks[i].version->type == 
AMD_IP_BLOCK_TYPE_SDMA))
                        continue;
                /* skip CG for VCE/UVD, it's handled specially */
                if (adev->ip_blocks[i].version->type != AMD_IP_BLOCK_TYPE_UVD &&
-- 
2.38.1

Reply via email to