浏览代码

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>
Alex Deucher 12 年之前
父节点
当前提交
679fe80fbe
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      drivers/gpu/drm/radeon/ci_dpm.c

+ 6 - 0
drivers/gpu/drm/radeon/ci_dpm.c

@@ -5179,6 +5179,12 @@ int ci_dpm_init(struct radeon_device *rdev)
 
 
 	pi->uvd_power_gated = false;
 	pi->uvd_power_gated = false;
 
 
+	/* 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;
 	return 0;
 }
 }