staging: comedi: ii_pci20kc: use comedi_offset_munge()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 8 Oct 2015 17:30:44 +0000 (10:30 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Oct 2015 05:58:35 +0000 (22:58 -0700)
For aesthetics, use the helper function to handle the munging of the
analog output data from offset binary to 2's complement and the analog
input data from 2's complement to offset binary.

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>
drivers/staging/comedi/drivers/ii_pci20kc.c

index 4d3f89c5e73ea62938c928da98ec5ea38b9e3046..1f3eaf6095daf4fd5b0468a27dffc053e6dc6f53 100644 (file)
@@ -153,9 +153,8 @@ static int ii20k_ao_insn_write(struct comedi_device *dev,
 
                s->readback[chan] = val;
 
-               /* munge data */
-               val += ((s->maxdata + 1) >> 1);
-               val &= s->maxdata;
+               /* munge the offset binary data to 2's complement */
+               val = comedi_offset_munge(s, val);
 
                writeb(val & 0xff, iobase + II20K_AO_LSB_REG(chan));
                writeb((val >> 8) & 0xff, iobase + II20K_AO_MSB_REG(chan));
@@ -243,11 +242,8 @@ static int ii20k_ai_insn_read(struct comedi_device *dev,
                val = readb(iobase + II20K_AI_LSB_REG);
                val |= (readb(iobase + II20K_AI_MSB_REG) << 8);
 
-               /* munge two's complement data */
-               val += ((s->maxdata + 1) >> 1);
-               val &= s->maxdata;
-
-               data[i] = val;
+               /* munge the 2's complement data to offset binary */
+               data[i] = comedi_offset_munge(s, val);
        }
 
        return insn->n;