DF-3734 / fix.diff
diff --git a/sys/dev/drm/radeon/r600.c b/sys/dev/drm/radeon/r600.c index 1111111..2222222 100644 --- a/sys/dev/drm/radeon/r600.c +++ b/sys/dev/drm/radeon/r600.c @@ -480,11 +480,15 @@ void r600_pm_get_dynpm_state(struct radeon_device *rdev) /* don't use the power state if crtcs are active and no display flag is set */ if ((rdev->pm.active_crtc_count > 0) && (rdev->pm.power_state[rdev->pm.requested_power_state_index]. clock_info[rdev->pm.requested_clock_mode_index].flags & RADEON_PM_MODE_NO_DISPLAY)) { - rdev->pm.requested_clock_mode_index++; + if (rdev->pm.requested_clock_mode_index + 1 < + rdev->pm.power_state[rdev->pm.requested_power_state_index]. + num_clock_modes) + rdev->pm.requested_clock_mode_index++; } break; case DYNPM_ACTION_UPCLOCK: if (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index) { |