diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-08-30 18:07:17 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-17 14:47:41 (GMT) |
commit | ebf33d0479b0e61c9f1cf35a29bcb65cc5e14a44 (patch) | |
tree | 8f79db3c7df6ad619bf7ee830f668f702cd419b7 /drivers | |
parent | 6f617e544b26d4232659402da42924e8cd6b1eaf (diff) | |
download | linux-fsl-qoriq-ebf33d0479b0e61c9f1cf35a29bcb65cc5e14a44.tar.xz |
staging: comedi: das08: remove do_bits from private data
Use the subdevice 'state' variable instead of carrying the state of
the output channels in the private data.
Use comedi_dio_update_state() to handle the boilerplate code to update
the subdevice s->state.
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/comedi/drivers/das08.c | 14 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/das08.h | 1 |
2 files changed, 5 insertions, 10 deletions
diff --git a/drivers/staging/comedi/drivers/das08.c b/drivers/staging/comedi/drivers/das08.c index 5f66970..1add6fb 100644 --- a/drivers/staging/comedi/drivers/das08.c +++ b/drivers/staging/comedi/drivers/das08.c @@ -316,17 +316,13 @@ static int das08jr_di_rbits(struct comedi_device *dev, static int das08jr_do_wbits(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, + unsigned int *data) { - struct das08_private_struct *devpriv = dev->private; - - /* null bits we are going to set */ - devpriv->do_bits &= ~data[0]; - /* set new bit values */ - devpriv->do_bits |= data[0] & data[1]; - outb(devpriv->do_bits, dev->iobase + DAS08JR_DIO); + if (comedi_dio_update_state(s, data)) + outb(s->state, dev->iobase + DAS08JR_DIO); - data[1] = devpriv->do_bits; + data[1] = s->state; return insn->n; } diff --git a/drivers/staging/comedi/drivers/das08.h b/drivers/staging/comedi/drivers/das08.h index cce1b58..46a314c 100644 --- a/drivers/staging/comedi/drivers/das08.h +++ b/drivers/staging/comedi/drivers/das08.h @@ -41,7 +41,6 @@ struct das08_board_struct { struct das08_private_struct { unsigned int do_mux_bits; /* bits for do/mux register on boards without separate do register */ - unsigned int do_bits; /* bits for do register on boards with register dedicated to digital out only */ const unsigned int *pg_gainlist; unsigned int ao_readback[2]; /* assume 2 AO channels */ }; |