From: H Hartley Sweeten Date: Fri, 30 Aug 2013 18:09:27 +0000 (-0700) Subject: staging: comedi: addi_apci_16xx: use comedi_dio_update_state() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=a485f4d60e7de92b65e3f03ccd6c3b8cb0062c32;p=deliverable%2Flinux.git staging: comedi: addi_apci_16xx: use comedi_dio_update_state() The extra mask used to only update the channels configured as outputs is not necessary in this driver. Remove it and use comedi_dio_update_state() to handle the boilerplate code to update the subdevice s->state. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/addi_apci_16xx.c b/drivers/staging/comedi/drivers/addi_apci_16xx.c index 96523744b8de..5ee204bcbeef 100644 --- a/drivers/staging/comedi/drivers/addi_apci_16xx.c +++ b/drivers/staging/comedi/drivers/addi_apci_16xx.c @@ -87,17 +87,8 @@ static int apci16xx_dio_insn_bits(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - unsigned int mask = data[0]; - unsigned int bits = data[1]; - - /* Only update the channels configured as outputs */ - mask &= s->io_bits; - if (mask) { - s->state &= ~mask; - s->state |= (bits & mask); - + if (comedi_dio_update_state(s, data)) outl(s->state, dev->iobase + APCI16XX_OUT_REG(s->index)); - } data[1] = inl(dev->iobase + APCI16XX_IN_REG(s->index));