DF-4124 / fix.diff
--- a/sys/dev/drm/radeon/rv6xx_dpm.c +++ b/sys/dev/drm/radeon/rv6xx_dpm.c @@ -1546,6 +1546,10 @@ int rv6xx_dpm_enable(struct radeon_device *rdev) struct rv6xx_power_info *pi = rv6xx_get_pi(rdev); struct radeon_ps *boot_ps = rdev->pm.dpm.boot_ps; + if (!boot_ps || !boot_ps->ps_priv) + return -EINVAL; + if (r600_dynamicpm_enabled(rdev)) return -EINVAL; @@ -1613,6 +1617,10 @@ void rv6xx_dpm_disable(struct radeon_device *rdev) struct rv6xx_power_info *pi = rv6xx_get_pi(rdev); struct radeon_ps *boot_ps = rdev->pm.dpm.boot_ps; + if (!boot_ps || !boot_ps->ps_priv) + return; + if (!r600_dynamicpm_enabled(rdev)) return; # NOTE: authored against the read-only sys/ tree after verification; never applied there. |