diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c index 79bc9c7aad45..e2c06780ce49 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | |||
@@ -321,6 +321,10 @@ static void amdgpu_vce_idle_work_handler(struct work_struct *work) | |||
321 | amdgpu_dpm_enable_vce(adev, false); | 321 | amdgpu_dpm_enable_vce(adev, false); |
322 | } else { | 322 | } else { |
323 | amdgpu_asic_set_vce_clocks(adev, 0, 0); | 323 | amdgpu_asic_set_vce_clocks(adev, 0, 0); |
324 | amdgpu_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
325 | AMD_PG_STATE_GATE); | ||
326 | amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
327 | AMD_CG_STATE_GATE); | ||
324 | } | 328 | } |
325 | } else { | 329 | } else { |
326 | schedule_delayed_work(&adev->vce.idle_work, VCE_IDLE_TIMEOUT); | 330 | schedule_delayed_work(&adev->vce.idle_work, VCE_IDLE_TIMEOUT); |
@@ -346,6 +350,11 @@ void amdgpu_vce_ring_begin_use(struct amdgpu_ring *ring) | |||
346 | amdgpu_dpm_enable_vce(adev, true); | 350 | amdgpu_dpm_enable_vce(adev, true); |
347 | } else { | 351 | } else { |
348 | amdgpu_asic_set_vce_clocks(adev, 53300, 40000); | 352 | amdgpu_asic_set_vce_clocks(adev, 53300, 40000); |
353 | amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
354 | AMD_CG_STATE_UNGATE); | ||
355 | amdgpu_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCE, | ||
356 | AMD_PG_STATE_UNGATE); | ||
357 | |||
349 | } | 358 | } |
350 | } | 359 | } |
351 | mutex_unlock(&adev->vce.idle_mutex); | 360 | mutex_unlock(&adev->vce.idle_mutex); |