staging: comedi: aio_iiro_16: read intial state of the digital outputs
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 8 Jan 2015 00:19:30 +0000 (17:19 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Jan 2015 01:03:55 +0000 (17:03 -0800)
The relay registers are readable. Read them during the attach to get
the initial state of the digital outputs.

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 96ea174dd7db1c372f1bce0c55967c8057870901..8cd5f116e15bd880b38515478470f6c2bc792b0e 100644 (file)
@@ -85,6 +85,10 @@ static int aio_iiro_16_attach(struct comedi_device *dev,
        s->range_table  = &range_digital;
        s->insn_bits    = aio_iiro_16_do_insn_bits;
 
+       /* get the initial state of the relays */
+       s->state = inb(dev->iobase + AIO_IIRO_16_RELAY_0_7) |
+                  (inb(dev->iobase + AIO_IIRO_16_RELAY_8_15) << 8);
+
        /* Digital Input subdevice */
        s = &dev->subdevices[1];
        s->type         = COMEDI_SUBD_DI;