diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/rs600.c')
-rw-r--r-- | drivers/gpu/drm/radeon/rs600.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index c3818562a13e..a581fdead4dd 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c | |||
@@ -406,10 +406,16 @@ int rs600_irq_process(struct radeon_device *rdev) | |||
406 | if (G_000044_SW_INT(status)) | 406 | if (G_000044_SW_INT(status)) |
407 | radeon_fence_process(rdev); | 407 | radeon_fence_process(rdev); |
408 | /* Vertical blank interrupts */ | 408 | /* Vertical blank interrupts */ |
409 | if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int)) | 409 | if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int)) { |
410 | drm_handle_vblank(rdev->ddev, 0); | 410 | drm_handle_vblank(rdev->ddev, 0); |
411 | if (G_007EDC_LB_D2_VBLANK_INTERRUPT(r500_disp_int)) | 411 | if (rdev->pm.vblank_callback) |
412 | queue_work(rdev->wq, &rdev->pm.reclock_work); | ||
413 | } | ||
414 | if (G_007EDC_LB_D2_VBLANK_INTERRUPT(r500_disp_int)) { | ||
412 | drm_handle_vblank(rdev->ddev, 1); | 415 | drm_handle_vblank(rdev->ddev, 1); |
416 | if (rdev->pm.vblank_callback) | ||
417 | queue_work(rdev->wq, &rdev->pm.reclock_work); | ||
418 | } | ||
413 | if (G_007EDC_DC_HOT_PLUG_DETECT1_INTERRUPT(r500_disp_int)) { | 419 | if (G_007EDC_DC_HOT_PLUG_DETECT1_INTERRUPT(r500_disp_int)) { |
414 | queue_hotplug = true; | 420 | queue_hotplug = true; |
415 | DRM_DEBUG("HPD1\n"); | 421 | DRM_DEBUG("HPD1\n"); |