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 <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/aio_iiro_16.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/staging/comedi/drivers/aio_iiro_16.c 
b/drivers/staging/comedi/drivers/aio_iiro_16.c
index 96ea174..8cd5f11 100644
--- a/drivers/staging/comedi/drivers/aio_iiro_16.c
+++ b/drivers/staging/comedi/drivers/aio_iiro_16.c
@@ -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;
-- 
2.0.3

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to