Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8158eb9e authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/radeon: don't power gate paused UVD streams

parent 7f4237c6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -924,6 +924,10 @@ void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool enable)

	if (rdev->asic->dpm.powergate_uvd) {
		mutex_lock(&rdev->pm.mutex);
		/* don't powergate anything if we
		   have active but pause streams */
		enable |= rdev->pm.dpm.sd > 0;
		enable |= rdev->pm.dpm.hd > 0;
		/* enable/disable UVD */
		radeon_dpm_powergate_uvd(rdev, !enable);
		mutex_unlock(&rdev->pm.mutex);
+2 −0
Original line number Diff line number Diff line
@@ -778,6 +778,8 @@ static void radeon_uvd_idle_work_handler(struct work_struct *work)

	if (radeon_fence_count_emitted(rdev, R600_RING_TYPE_UVD_INDEX) == 0) {
		if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) {
			radeon_uvd_count_handles(rdev, &rdev->pm.dpm.sd,
						 &rdev->pm.dpm.hd);
			radeon_dpm_enable_uvd(rdev, false);
		} else {
			radeon_set_uvd_clocks(rdev, 0, 0);