drm/radeon/dpm: make sure dc performance level limits are valid (BTC-SI) (v2)
Check to make sure the dc limits are valid before using them. Some systems may not have a dc limits table. In that case just use the ac limits. This fixes hangs on systems when the power state is changed when on battery (dc) due to invalid performance state parameters. Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=68708 v2: fix up limits in dpm_init() Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
This commit is contained in:
parent
5b7d245009
commit
1ff60ddb84
|
@ -2699,6 +2699,12 @@ int btc_dpm_init(struct radeon_device *rdev)
|
|||
else
|
||||
rdev->pm.dpm.dyn_state.sclk_mclk_delta = 10000;
|
||||
|
||||
/* make sure dc limits are valid */
|
||||
if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) ||
|
||||
(rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0))
|
||||
rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc =
|
||||
rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -4272,6 +4272,12 @@ int ni_dpm_init(struct radeon_device *rdev)
|
|||
|
||||
ni_pi->use_power_boost_limit = true;
|
||||
|
||||
/* make sure dc limits are valid */
|
||||
if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) ||
|
||||
(rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0))
|
||||
rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc =
|
||||
rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -6449,6 +6449,12 @@ int si_dpm_init(struct radeon_device *rdev)
|
|||
|
||||
si_initialize_powertune_defaults(rdev);
|
||||
|
||||
/* make sure dc limits are valid */
|
||||
if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) ||
|
||||
(rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0))
|
||||
rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc =
|
||||
rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue