diff options
author | H Hartley Sweeten <hartleys@visionengravers.com> | 2014-03-13 10:10:00 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-03-17 14:16:16 -0700 |
commit | 6632d65e3494f3fb0062b417b6a07086d8a2de70 (patch) | |
tree | 5b8a69c16b18efdff63b4964f62204b9c0b93b3f | |
parent | 3ecbbb56cb134982c48e8d94d891fd2296af4faa (diff) |
staging: comedi: fl512: tidy up fl512_ao_insn_read()
Tidy up this function.
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>
-rw-r--r-- | drivers/staging/comedi/drivers/fl512.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/drivers/staging/comedi/drivers/fl512.c b/drivers/staging/comedi/drivers/fl512.c index 90a8fd9a7f1..3bf6d6fa12d 100644 --- a/drivers/staging/comedi/drivers/fl512.c +++ b/drivers/staging/comedi/drivers/fl512.c @@ -52,22 +52,26 @@ static int fl512_ai_insn_read(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - int n; - unsigned int lo_byte, hi_byte; - char chan = CR_CHAN(insn->chanspec); - - for (n = 0; n < insn->n; n++) { /* sample n times on selected channel */ - /* XXX probably can move next step out of for() loop -- will - * make AI a little bit faster. */ - outb(chan, dev->iobase + FL512_AI_MUX_REG); + unsigned int chan = CR_CHAN(insn->chanspec); + unsigned int val; + int i; + + outb(chan, dev->iobase + FL512_AI_MUX_REG); + + for (i = 0; i < insn->n; i++) { outb(0, dev->iobase + FL512_AI_START_CONV_REG); + /* XXX should test "done" flag instead of delay */ - udelay(30); /* sleep 30 usec */ - lo_byte = inb(dev->iobase + FL512_AI_LSB_REG); - hi_byte = inb(dev->iobase + FL512_AI_MSB_REG) & 0xf; - data[n] = lo_byte + (hi_byte << 8); + udelay(30); + + val = inb(dev->iobase + FL512_AI_LSB_REG); + val |= (inb(dev->iobase + FL512_AI_MSB_REG) << 8); + val &= s->maxdata; + + data[i] = val; } - return n; + + return insn->n; } static int fl512_ao_insn_write(struct comedi_device *dev, |