summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-09-10 19:36:08 +0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-09-11 15:31:57 +0400
commitab8905f1c6a74d695c6096791ec4b349bc985b8a (patch)
treeed9ba95e827e77ce07cb46c0081a13b77def7827 /drivers
parent2368ffb18b1d2b04eb80478d225676caa7a3c4c8 (diff)
downloadlinux-ab8905f1c6a74d695c6096791ec4b349bc985b8a.tar.xz
drm: Really never disable vblank irqs for offdelay==0
With the new support for immediate vblank disabling we always disabled the vblank interrupt right away, irrespective of the vblank offdelay setting. But being able to let vblanks run forever is fairly useful for debugging, so restore that behaviour. Suggested-by: Mario Kleiner <mario.kleiner.de@gmail.com> Cc: Mario Kleiner <mario.kleiner.de@gmail.com> Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/drm_irq.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 9be760145cb7..87d148cec877 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -1005,9 +1005,11 @@ void drm_vblank_put(struct drm_device *dev, int crtc)
/* Last user schedules interrupt disable */
if (atomic_dec_and_test(&vblank->refcount)) {
- if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0)
+ if (drm_vblank_offdelay == 0)
+ return;
+ else if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0)
vblank_disable_fn((unsigned long)vblank);
- else if (drm_vblank_offdelay > 0)
+ else
mod_timer(&vblank->disable_timer,
jiffies + ((drm_vblank_offdelay * HZ)/1000));
}