staging: comedi: aio_iiro_16: introduce aio_iiro_enable_irq()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 8 Jan 2015 00:19:31 +0000 (17:19 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Jan 2015 01:03:55 +0000 (17:03 -0800)
This board supports interrupts on change of state of the digital inputs.

Introduce a helper function to enable/disable the interrupt. Use the new
helper function to ensure that interrupts are initially disabled during
the driver (*attach).

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/aio_iiro_16.c

index 8cd5f116e15bd880b38515478470f6c2bc792b0e..f84fb744699409004d9413853920781325cd1d3b 100644 (file)
 #define AIO_IIRO_16_RELAY_8_15 0x04
 #define AIO_IIRO_16_INPUT_8_15 0x05
 
+static void aio_iiro_enable_irq(struct comedi_device *dev, bool enable)
+{
+       if (enable)
+               inb(dev->iobase + AIO_IIRO_16_IRQ);
+       else
+               outb(0, dev->iobase + AIO_IIRO_16_IRQ);
+}
+
 static int aio_iiro_16_do_insn_bits(struct comedi_device *dev,
                                    struct comedi_subdevice *s,
                                    struct comedi_insn *insn,
@@ -72,6 +80,8 @@ static int aio_iiro_16_attach(struct comedi_device *dev,
        if (ret)
                return ret;
 
+       aio_iiro_enable_irq(dev, false);
+
        ret = comedi_alloc_subdevices(dev, 2);
        if (ret)
                return ret;