]> git.karo-electronics.de Git - linux-beck.git/commitdiff
staging: comedi: pcmad: tidy up pcmad_ai_insn_read()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Wed, 5 Jun 2013 22:37:06 +0000 (15:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Jun 2013 19:01:34 +0000 (12:01 -0700)
Use a local variable to read and munge the analog input data instead
of directly using the 'data' pointer passed to the function.

(*insn_read) functions either return an errno or the number of data
values read. Change the final return to insn->n to make this clearer.

Tidy up the function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/pcmad.c

index a05b5d488f7de54f0947e3a63865cbd3f982b47a..6b31e43335ccc17d531df64595f7d437d1299c61 100644 (file)
@@ -86,30 +86,32 @@ static int pcmad_ai_wait_for_eoc(struct comedi_device *dev,
 
 static int pcmad_ai_insn_read(struct comedi_device *dev,
                              struct comedi_subdevice *s,
-                             struct comedi_insn *insn, unsigned int *data)
+                             struct comedi_insn *insn,
+                             unsigned int *data)
 {
        struct pcmad_priv_struct *devpriv = dev->private;
-       int chan;
-       int n;
+       unsigned int chan = CR_CHAN(insn->chanspec);
+       unsigned int val;
        int ret;
+       int i;
 
-       chan = CR_CHAN(insn->chanspec);
-
-       for (n = 0; n < insn->n; n++) {
+       for (i = 0; i < insn->n; i++) {
                outb(chan, dev->iobase + PCMAD_CONVERT);
 
                ret = pcmad_ai_wait_for_eoc(dev, TIMEOUT);
                if (ret)
                        return ret;
 
-               data[n] = inb(dev->iobase + PCMAD_LSB);
-               data[n] |= (inb(dev->iobase + PCMAD_MSB) << 8);
+               val = inb(dev->iobase + PCMAD_LSB) |
+                     (inb(dev->iobase + PCMAD_MSB) << 8);
 
                if (devpriv->twos_comp)
-                       data[n] ^= ((s->maxdata + 1) >> 1);
+                       val ^= ((s->maxdata + 1) >> 1);
+
+               data[i] = val;
        }
 
-       return n;
+       return insn->n;
 }
 
 /*