|
@@ -276,8 +276,12 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
|
|
if (rdev->irq.installed) {
|
|
if (rdev->irq.installed) {
|
|
for (i = 0; i < rdev->num_crtc; i++) {
|
|
for (i = 0; i < rdev->num_crtc; i++) {
|
|
if (rdev->pm.active_crtcs & (1 << i)) {
|
|
if (rdev->pm.active_crtcs & (1 << i)) {
|
|
- rdev->pm.req_vblank |= (1 << i);
|
|
|
|
- drm_vblank_get(rdev->ddev, i);
|
|
|
|
|
|
+ /* This can fail if a modeset is in progress */
|
|
|
|
+ if (drm_vblank_get(rdev->ddev, i) == 0)
|
|
|
|
+ rdev->pm.req_vblank |= (1 << i);
|
|
|
|
+ else
|
|
|
|
+ DRM_DEBUG_DRIVER("crtc %d no vblank, can glitch\n",
|
|
|
|
+ i);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|