diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2017-02-26 15:34:42 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2017-02-26 15:34:42 -0500 |
commit | 8e22e1b3499a446df48c2b26667ca36c55bf864c (patch) | |
tree | 5329f98b3eb3c95a9dcbab0fa4f9b6e62f0e788d /drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | |
parent | 00d3c14f14d51babd8aeafd5fa734ccf04f5ca3d (diff) | |
parent | 64a577196d66b44e37384bc5c4d78c61f59d5b2a (diff) |
Merge airlied/drm-next into drm-misc-next
Backmerge the main pull request to sync up with all the newly landed
drivers. Otherwise we'll have chaos even before 4.12 started in
earnest.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c index a61882ddc804..346e80a7119b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | |||
@@ -1142,12 +1142,22 @@ void amdgpu_dpm_enable_vce(struct amdgpu_device *adev, bool enable) | |||
1142 | /* XXX select vce level based on ring/task */ | 1142 | /* XXX select vce level based on ring/task */ |
1143 | adev->pm.dpm.vce_level = AMD_VCE_LEVEL_AC_ALL; | 1143 | adev->pm.dpm.vce_level = AMD_VCE_LEVEL_AC_ALL; |
1144 | mutex_unlock(&adev->pm.mutex); | 1144 | mutex_unlock(&adev->pm.mutex); |
1145 | amdgpu_pm_compute_clocks(adev); | ||
1146 | amdgpu_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
1147 | AMD_PG_STATE_UNGATE); | ||
1148 | amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
1149 | AMD_CG_STATE_UNGATE); | ||
1145 | } else { | 1150 | } else { |
1151 | amdgpu_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
1152 | AMD_PG_STATE_GATE); | ||
1153 | amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
1154 | AMD_CG_STATE_GATE); | ||
1146 | mutex_lock(&adev->pm.mutex); | 1155 | mutex_lock(&adev->pm.mutex); |
1147 | adev->pm.dpm.vce_active = false; | 1156 | adev->pm.dpm.vce_active = false; |
1148 | mutex_unlock(&adev->pm.mutex); | 1157 | mutex_unlock(&adev->pm.mutex); |
1158 | amdgpu_pm_compute_clocks(adev); | ||
1149 | } | 1159 | } |
1150 | amdgpu_pm_compute_clocks(adev); | 1160 | |
1151 | } | 1161 | } |
1152 | } | 1162 | } |
1153 | 1163 | ||
@@ -1286,7 +1296,8 @@ void amdgpu_pm_compute_clocks(struct amdgpu_device *adev) | |||
1286 | if (!adev->pm.dpm_enabled) | 1296 | if (!adev->pm.dpm_enabled) |
1287 | return; | 1297 | return; |
1288 | 1298 | ||
1289 | amdgpu_display_bandwidth_update(adev); | 1299 | if (adev->mode_info.num_crtc) |
1300 | amdgpu_display_bandwidth_update(adev); | ||
1290 | 1301 | ||
1291 | for (i = 0; i < AMDGPU_MAX_RINGS; i++) { | 1302 | for (i = 0; i < AMDGPU_MAX_RINGS; i++) { |
1292 | struct amdgpu_ring *ring = adev->rings[i]; | 1303 | struct amdgpu_ring *ring = adev->rings[i]; |