aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-08-30 16:24:33 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-08-30 16:31:25 -0400
commit679fe80fbe964ea7f9f71781c2ca65b630949da3 (patch)
tree309b8269d5906c68a5419abc853cc7f0dea72e22
parent1ff60ddb84bb9ff6fa182710c4e08b66badf918c (diff)
drm/radeon/dpm: make sure dc performance level limits are valid (CI)
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 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index dd2a07c44c3a..916630fdc796 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -5179,6 +5179,12 @@ int ci_dpm_init(struct radeon_device *rdev)
5179 5179
5180 pi->uvd_power_gated = false; 5180 pi->uvd_power_gated = false;
5181 5181
5182 /* make sure dc limits are valid */
5183 if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) ||
5184 (rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0))
5185 rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc =
5186 rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
5187
5182 return 0; 5188 return 0;
5183} 5189}
5184 5190