[PATCH 04/15] staging: comedi: ni_daq_700: tidy up daq700_dio_insn_bits()
H Hartley Sweeten
hsweeten at visionengravers.com
Tue Jul 15 00:21:01 UTC 2014
This board has 8 digital output and 8 digital input channels. For convienence
all 16 channels are packed into one DIO subdevice. Add a comment to clarify
this.
Tidy up the 'mask' check used when updating the digital outputs.
For aesthetics, rename the digital output and digital input registers.
Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Cc: Ian Abbott <abbotti at mev.co.uk>
Cc: Greg Kroah-Hartman <gregk at linuxfoundation.org>
---
drivers/staging/comedi/drivers/ni_daq_700.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index ba22951..1798b47 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -61,11 +61,11 @@
/*
* Regsiter I/O map
*/
+#define DAQ700_DO_REG 0x04
+#define DAQ700_DI_REG 0x05
#define DAQ700_TIMER_BASE 0x08
/* daqcard700 registers */
-#define DIO_W 0x04 /* WO 8bit */
-#define DIO_R 0x05 /* RO 8bit */
#define CMD_R1 0x00 /* WO 8bit */
#define CMD_R2 0x07 /* RW 8bit */
#define CMD_R3 0x05 /* W0 8bit */
@@ -94,14 +94,16 @@ static int daq700_dio_insn_bits(struct comedi_device *dev,
unsigned int mask;
unsigned int val;
+ /*
+ * channels 0-7 are always outputs
+ * channels 8-15 are always inputs
+ */
mask = comedi_dio_update_state(s, data);
- if (mask) {
- if (mask & 0xff)
- outb(s->state & 0xff, dev->iobase + DIO_W);
- }
+ if (mask & 0xff)
+ outb(s->state & 0xff, dev->iobase + DAQ700_DO_REG);
val = s->state & 0xff;
- val |= inb(dev->iobase + DIO_R) << 8;
+ val |= inb(dev->iobase + DAQ700_DI_REG) << 8;
data[1] = val;
--
1.9.3
More information about the devel
mailing list