Commit 7ae764b1 authored by Alex Deucher's avatar Alex Deucher

drm/radeon: fix multi-head power profile stability on BTC+ asics

vddci needs to track mclk for multi-head.
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 0e3d50bf
...@@ -403,6 +403,19 @@ void evergreen_pm_misc(struct radeon_device *rdev) ...@@ -403,6 +403,19 @@ void evergreen_pm_misc(struct radeon_device *rdev)
rdev->pm.current_vddc = voltage->voltage; rdev->pm.current_vddc = voltage->voltage;
DRM_DEBUG("Setting: vddc: %d\n", voltage->voltage); DRM_DEBUG("Setting: vddc: %d\n", voltage->voltage);
} }
/* starting with BTC, there is one state that is used for both
* MH and SH. Difference is that we always use the high clock index for
* mclk and vddci.
*/
if ((rdev->pm.pm_method == PM_METHOD_PROFILE) &&
(rdev->family >= CHIP_BARTS) &&
rdev->pm.active_crtc_count &&
((rdev->pm.profile_index == PM_PROFILE_MID_MH_IDX) ||
(rdev->pm.profile_index == PM_PROFILE_LOW_MH_IDX)))
voltage = &rdev->pm.power_state[req_ps_idx].
clock_info[rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_cm_idx].voltage;
/* 0xff01 is a flag rather then an actual voltage */ /* 0xff01 is a flag rather then an actual voltage */
if (voltage->vddci == 0xff01) if (voltage->vddci == 0xff01)
return; return;
......
...@@ -169,7 +169,7 @@ static void radeon_set_power_state(struct radeon_device *rdev) ...@@ -169,7 +169,7 @@ static void radeon_set_power_state(struct radeon_device *rdev)
/* starting with BTC, there is one state that is used for both /* starting with BTC, there is one state that is used for both
* MH and SH. Difference is that we always use the high clock index for * MH and SH. Difference is that we always use the high clock index for
* mclk. * mclk and vddci.
*/ */
if ((rdev->pm.pm_method == PM_METHOD_PROFILE) && if ((rdev->pm.pm_method == PM_METHOD_PROFILE) &&
(rdev->family >= CHIP_BARTS) && (rdev->family >= CHIP_BARTS) &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment