]> git.neil.brown.name Git - history.git/commitdiff
Merge i830 IRQ handler cleanups from DRI CVS tree
authorLinus Torvalds <torvalds@home.osdl.org>
Fri, 1 Aug 2003 12:49:50 +0000 (05:49 -0700)
committerDavid S. Miller <davem@kernel.bkbits.net>
Fri, 1 Aug 2003 12:49:50 +0000 (05:49 -0700)
drivers/char/drm/i830_irq.c

index 8c0f7af32cdb738cea85fb2759bf4d3bc3cfd3da..00ffa0b6ce518c4d8febaf5206d4a09987645c22 100644 (file)
@@ -35,7 +35,7 @@
 #include <linux/delay.h>
 
 
-void DRM(dma_service)(int irq, void *device, struct pt_regs *regs)
+irqreturn_t DRM(dma_service)(int irq, void *device, struct pt_regs *regs)
 {
        drm_device_t     *dev = (drm_device_t *)device;
        drm_i830_private_t *dev_priv = (drm_i830_private_t *)dev->dev_private;
@@ -44,15 +44,15 @@ void DRM(dma_service)(int irq, void *device, struct pt_regs *regs)
        temp = I830_READ16(I830REG_INT_IDENTITY_R);
        DRM_DEBUG("%x\n", temp);
 
-       if (temp == 0
-               return;
+       if ( !( temp & 2 ) 
+               return IRQ_NONE;
 
        I830_WRITE16(I830REG_INT_IDENTITY_R, temp); 
 
-       if (temp & 2) {
-               atomic_inc(&dev_priv->irq_received);
-               wake_up_interruptible(&dev_priv->irq_queue); 
-       }
+       atomic_inc(&dev_priv->irq_received);
+       wake_up_interruptible(&dev_priv->irq_queue); 
+
+       return IRQ_HANDLED;
 }