提交 36099186 编写于 作者: A Alex Deucher

drm/radeon: don't set default clocks for SI when DPM is disabled

This is a partial revert of c6cf7777.

We need to take into account the clk voltage dependencies of the
board.  Not doing so can lead to stability issues on certain
boards if the clks exceed the levels in the dep tables.

DPM already takes that into account, so for optimal performance,
use DPM.
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
上级 a52b5eb6
...@@ -1002,7 +1002,7 @@ static void radeon_pm_resume_old(struct radeon_device *rdev) ...@@ -1002,7 +1002,7 @@ static void radeon_pm_resume_old(struct radeon_device *rdev)
{ {
/* set up the default clocks if the MC ucode is loaded */ /* set up the default clocks if the MC ucode is loaded */
if ((rdev->family >= CHIP_BARTS) && if ((rdev->family >= CHIP_BARTS) &&
(rdev->family <= CHIP_HAINAN) && (rdev->family <= CHIP_CAYMAN) &&
rdev->mc_fw) { rdev->mc_fw) {
if (rdev->pm.default_vddc) if (rdev->pm.default_vddc)
radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
...@@ -1046,7 +1046,7 @@ static void radeon_pm_resume_dpm(struct radeon_device *rdev) ...@@ -1046,7 +1046,7 @@ static void radeon_pm_resume_dpm(struct radeon_device *rdev)
if (ret) { if (ret) {
DRM_ERROR("radeon: dpm resume failed\n"); DRM_ERROR("radeon: dpm resume failed\n");
if ((rdev->family >= CHIP_BARTS) && if ((rdev->family >= CHIP_BARTS) &&
(rdev->family <= CHIP_HAINAN) && (rdev->family <= CHIP_CAYMAN) &&
rdev->mc_fw) { rdev->mc_fw) {
if (rdev->pm.default_vddc) if (rdev->pm.default_vddc)
radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
...@@ -1097,7 +1097,7 @@ static int radeon_pm_init_old(struct radeon_device *rdev) ...@@ -1097,7 +1097,7 @@ static int radeon_pm_init_old(struct radeon_device *rdev)
radeon_pm_init_profile(rdev); radeon_pm_init_profile(rdev);
/* set up the default clocks if the MC ucode is loaded */ /* set up the default clocks if the MC ucode is loaded */
if ((rdev->family >= CHIP_BARTS) && if ((rdev->family >= CHIP_BARTS) &&
(rdev->family <= CHIP_HAINAN) && (rdev->family <= CHIP_CAYMAN) &&
rdev->mc_fw) { rdev->mc_fw) {
if (rdev->pm.default_vddc) if (rdev->pm.default_vddc)
radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
...@@ -1183,7 +1183,7 @@ static int radeon_pm_init_dpm(struct radeon_device *rdev) ...@@ -1183,7 +1183,7 @@ static int radeon_pm_init_dpm(struct radeon_device *rdev)
if (ret) { if (ret) {
rdev->pm.dpm_enabled = false; rdev->pm.dpm_enabled = false;
if ((rdev->family >= CHIP_BARTS) && if ((rdev->family >= CHIP_BARTS) &&
(rdev->family <= CHIP_HAINAN) && (rdev->family <= CHIP_CAYMAN) &&
rdev->mc_fw) { rdev->mc_fw) {
if (rdev->pm.default_vddc) if (rdev->pm.default_vddc)
radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, radeon_atom_set_voltage(rdev, rdev->pm.default_vddc,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册