aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_irq.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 8dbcc3f892d5..af33df1adc6d 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -1126,9 +1126,12 @@ void drm_vblank_on(struct drm_device *dev, int crtc)
1126 vblank->last = 1126 vblank->last =
1127 (dev->driver->get_vblank_counter(dev, crtc) - 1) & 1127 (dev->driver->get_vblank_counter(dev, crtc) - 1) &
1128 dev->max_vblank_count; 1128 dev->max_vblank_count;
1129 1129 /*
1130 /* re-enable interrupts if there's are users left */ 1130 * re-enable interrupts if there are users left, or the
1131 if (atomic_read(&vblank->refcount) != 0) 1131 * user wishes vblank interrupts to be enabled all the time.
1132 */
1133 if (atomic_read(&vblank->refcount) != 0 ||
1134 (!dev->vblank_disable_immediate && drm_vblank_offdelay == 0))
1132 WARN_ON(drm_vblank_enable(dev, crtc)); 1135 WARN_ON(drm_vblank_enable(dev, crtc));
1133 spin_unlock_irqrestore(&dev->vbl_lock, irqflags); 1136 spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
1134} 1137}