Messages in this thread Patch in this message | | | From | H Hartley Sweeten <> | Subject | [PATCH 7/7] staging: comedi: contec_pci_dio: cleanup contec_do_insn_bits | Date | Wed, 15 Aug 2012 17:32:53 -0700 |
| |
Create local variables for the mask and bits values passed in the data pointer to make this function a bit clearer.
Return the state of the output bits (s->state) in data[1] since this is what comedilib is expecting.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-hartman <gregkh@linuxfoundation.org> --- drivers/staging/comedi/drivers/contec_pci_dio.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/comedi/drivers/contec_pci_dio.c b/drivers/staging/comedi/drivers/contec_pci_dio.c index b7b60d3..12ad9fa3 100644 --- a/drivers/staging/comedi/drivers/contec_pci_dio.c +++ b/drivers/staging/comedi/drivers/contec_pci_dio.c @@ -44,12 +44,18 @@ static int contec_do_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) { - if (data[0]) { - s->state &= ~data[0]; - s->state |= data[0] & data[1]; + unsigned int mask = data[0]; + unsigned int bits = data[1]; + + if (mask) { + s->state &= ~mask; + s->state |= (bits & mask); outw(s->state, dev->iobase + PIO1616L_DO_REG); } + + data[1] = s->state; + return insn->n; } -- 1.7.11
| |