drm/amdgpu: not set cg for vce/uvd in late init.
authorRex Zhu <Rex.Zhu@amd.com>
Tue, 13 Sep 2016 11:38:38 +0000 (19:38 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 16 Sep 2016 19:52:51 +0000 (15:52 -0400)
no need to set cg for uvd/vce in late init.
As when ring test, uvd/vce's dpm will be enabled/disabled.
the cg will be set.

fix issue suspend when play video or encode, then resume back,
the clock will be bypassed on Polaris/Fiji.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index d324a079fe9b5b983f602ddcd716ec2cb0ba6ae7..3ddae5ff41bbaad238ae2d508a041f807b58b10c 100644 (file)
@@ -1367,6 +1367,9 @@ static int amdgpu_late_init(struct amdgpu_device *adev)
        for (i = 0; i < adev->num_ip_blocks; i++) {
                if (!adev->ip_block_status[i].valid)
                        continue;
+               if (adev->ip_blocks[i].type == AMD_IP_BLOCK_TYPE_UVD ||
+                       adev->ip_blocks[i].type == AMD_IP_BLOCK_TYPE_VCE)
+                       continue;
                /* enable clockgating to save power */
                r = adev->ip_blocks[i].funcs->set_clockgating_state((void *)adev,
                                                                    AMD_CG_STATE_GATE);