i915: Only schedule vblank tasklet if there are scheduled swaps pending.
authorMichel Dänzer <michel@tungstengraphics.com>
Fri, 29 Sep 2006 08:27:29 +0000 (10:27 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Fri, 29 Sep 2006 10:55:09 +0000 (12:55 +0200)
This fixes issues on X server startup with versions of xf86-video-intel that
enable the IRQ before they have a context ID.
(cherry picked from 7af93dd9849442270ec89cb4bbeef5bfd4f9e424 commit)

shared-core/i915_irq.c

index 4f72d88..71b7230 100644 (file)
@@ -176,7 +176,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
                DRM_WAKEUP(&dev->vbl_queue);
                drm_vbl_send_signals(dev);
 
-               drm_locked_tasklet(dev, i915_vblank_tasklet);
+               if (dev_priv->swaps_pending > 0)
+                       drm_locked_tasklet(dev, i915_vblank_tasklet);
        }
 
        return IRQ_HANDLED;