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 08:27:29 +0000 (10:27 +0200)
This fixes issues on X server startup with versions of xf86-video-intel that
enable the IRQ before they have a context ID.

shared-core/i915_irq.c

index fbc6674..76c3a81 100644 (file)
@@ -171,7 +171,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
                DRM_WAKEUP(&dev->vbl_queue);
                drm_vbl_send_signals(dev);
 
                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;
        }
 
        return IRQ_HANDLED;