]> Pileus Git - ~andy/linux/commitdiff
staging: comedi: ni_6527: tidy up ni6527_interrupt()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Tue, 1 Oct 2013 22:11:39 +0000 (15:11 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Oct 2013 21:09:53 +0000 (14:09 -0700)
Rename the CamelCase defines used for the interrupt status register.

The NI6527_STATUS_IRQ bit will be set whenever the device is asserting
an interrupt. Modify the function a bit so this is the only requirement
for the interrupt to be IRQ_HANDLED. Currently an OVERFLOW interrupt is
not handled, though it's unlikely this would occur without an EDGE
interrupt.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_6527.c

index 2ad9a80765f7661f2a2712e634f76835f03e1cfb..8718aaae7d2cd3b8102d2e62ab7c522b55e16df3 100644 (file)
@@ -54,11 +54,10 @@ Updated: Sat, 25 Jan 2003 13:24:40 -0800
 
 #define NI6527_FILT_INTERVAL_REG(x)    (0x08 + (x))
 #define NI6527_FILT_ENA_REG(x)         (0x0c + (x))
-
-#define Change_Status                          0x14
-#define MasterInterruptStatus          0x04
-#define Overflow                       0x02
-#define EdgeStatus                     0x01
+#define NI6527_STATUS_REG              0x14
+#define NI6527_STATUS_IRQ              (1 << 2)
+#define NI6527_STATUS_OVERFLOW         (1 << 1)
+#define NI6527_STATUS_EDGE             (1 << 0)
 
 #define Master_Interrupt_Control               0x15
 #define FallingEdgeIntEnable           0x10
@@ -206,20 +205,22 @@ static irqreturn_t ni6527_interrupt(int irq, void *d)
        struct comedi_device *dev = d;
        struct ni6527_private *devpriv = dev->private;
        struct comedi_subdevice *s = dev->read_subdev;
+       void __iomem *mmio = devpriv->mite->daq_io_addr;
        unsigned int status;
 
-       status = readb(devpriv->mite->daq_io_addr + Change_Status);
-       if ((status & MasterInterruptStatus) == 0)
-               return IRQ_NONE;
-       if ((status & EdgeStatus) == 0)
+       status = readb(mmio + NI6527_STATUS_REG);
+       if (!(status & NI6527_STATUS_IRQ))
                return IRQ_NONE;
 
+       if (status & NI6527_STATUS_EDGE) {
+               comedi_buf_put(s->async, 0);
+               s->async->events |= COMEDI_CB_EOS;
+               comedi_event(dev, s);
+       }
+
        writeb(ClrEdge | ClrOverflow,
-              devpriv->mite->daq_io_addr + Clear_Register);
+              mmio + Clear_Register);
 
-       comedi_buf_put(s->async, 0);
-       s->async->events |= COMEDI_CB_EOS;
-       comedi_event(dev, s);
        return IRQ_HANDLED;
 }