drm/radeon/dpm: disable multiple UVD states
Always use the regular UVD state for now. This fixes a performance regression with UVD playback on certain APUs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -945,6 +945,8 @@ void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool enable)
|
|||||||
if (enable) {
|
if (enable) {
|
||||||
mutex_lock(&rdev->pm.mutex);
|
mutex_lock(&rdev->pm.mutex);
|
||||||
rdev->pm.dpm.uvd_active = true;
|
rdev->pm.dpm.uvd_active = true;
|
||||||
|
/* disable this for now */
|
||||||
|
#if 0
|
||||||
if ((rdev->pm.dpm.sd == 1) && (rdev->pm.dpm.hd == 0))
|
if ((rdev->pm.dpm.sd == 1) && (rdev->pm.dpm.hd == 0))
|
||||||
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD_SD;
|
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD_SD;
|
||||||
else if ((rdev->pm.dpm.sd == 2) && (rdev->pm.dpm.hd == 0))
|
else if ((rdev->pm.dpm.sd == 2) && (rdev->pm.dpm.hd == 0))
|
||||||
@@ -954,6 +956,7 @@ void radeon_dpm_enable_uvd(struct radeon_device *rdev, bool enable)
|
|||||||
else if ((rdev->pm.dpm.sd == 0) && (rdev->pm.dpm.hd == 2))
|
else if ((rdev->pm.dpm.sd == 0) && (rdev->pm.dpm.hd == 2))
|
||||||
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD_HD2;
|
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD_HD2;
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD;
|
dpm_state = POWER_STATE_TYPE_INTERNAL_UVD;
|
||||||
rdev->pm.dpm.state = dpm_state;
|
rdev->pm.dpm.state = dpm_state;
|
||||||
mutex_unlock(&rdev->pm.mutex);
|
mutex_unlock(&rdev->pm.mutex);
|
||||||
|
|||||||
@@ -798,7 +798,8 @@ void radeon_uvd_note_usage(struct radeon_device *rdev)
|
|||||||
(rdev->pm.dpm.hd != hd)) {
|
(rdev->pm.dpm.hd != hd)) {
|
||||||
rdev->pm.dpm.sd = sd;
|
rdev->pm.dpm.sd = sd;
|
||||||
rdev->pm.dpm.hd = hd;
|
rdev->pm.dpm.hd = hd;
|
||||||
streams_changed = true;
|
/* disable this for now */
|
||||||
|
/*streams_changed = true;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user