Wake up vblank waitqueue in drm_handle_vblank().
authorMichel Dänzer <michel@tungstengraphics.com>
Fri, 15 Jun 2007 08:25:50 +0000 (10:25 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Fri, 15 Jun 2007 08:25:50 +0000 (10:25 +0200)
linux-core/drm_irq.c
shared-core/i915_irq.c

index b4e3c10..3dcde9a 100644 (file)
@@ -617,6 +617,7 @@ static void drm_vbl_send_signals(drm_device_t * dev, int crtc)
 void drm_handle_vblank(drm_device_t *dev, int crtc)
 {
        drm_update_vblank_count(dev, crtc);
+       DRM_WAKEUP(&dev->vbl_queue);
        drm_vbl_send_signals(dev, crtc);
 }
 EXPORT_SYMBOL(drm_handle_vblank);
index 9861af9..00400fa 100644 (file)
@@ -345,8 +345,6 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
                drm_handle_vblank(dev, 1);
 
        if (temp & (VSYNC_PIPEA_FLAG | VSYNC_PIPEB_FLAG)) {
-               DRM_WAKEUP(&dev->vbl_queue);
-
                if (dev_priv->swaps_pending > 0)
                        drm_locked_tasklet(dev, i915_vblank_tasklet);
                I915_WRITE(I915REG_PIPEASTAT,