OSDN Git Service

Make sure we ack irqs before we read a breadcrumb so that
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Tue, 3 Apr 2007 08:21:41 +0000 (10:21 +0200)
committerThomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Tue, 3 Apr 2007 08:29:15 +0000 (10:29 +0200)
breadcrumb updates that occur _AFTER_ we've read the breadcrumb really
generates a new IRQ.

shared-core/i915_irq.c

index 5da5410..4047e77 100644 (file)
@@ -294,6 +294,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
                return IRQ_NONE;
 
        I915_WRITE16(I915REG_INT_IDENTITY_R, temp);
+       (void) I915_READ16(I915REG_INT_IDENTITY_R);
+       DRM_READMEMORYBARRIER();
 
        dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);