提交 e05b98b6 编写于 作者: H H Hartley Sweeten 提交者: Greg Kroah-Hartman

staging: comedi: cb_das16_cs: cleanup das16cs_ai_rinsn()

Cleanup to analog input read function.

1) Initialize the chan, range, and aref locale variables when
   they are declared.
2) Remove need for the static local variable.
3) Remove the unnecessary cast of inw()'s return value.
Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Frank Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 cf2592d0
......@@ -111,16 +111,11 @@ static int das16cs_ai_rinsn(struct comedi_device *dev,
struct comedi_insn *insn, unsigned int *data)
{
struct das16cs_private *devpriv = dev->private;
int chan = CR_CHAN(insn->chanspec);
int range = CR_RANGE(insn->chanspec);
int aref = CR_AREF(insn->chanspec);
int i;
int to;
int aref;
int range;
int chan;
static int range_bits[] = { 0x800, 0x000, 0x100, 0x200 };
chan = CR_CHAN(insn->chanspec);
aref = CR_AREF(insn->chanspec);
range = CR_RANGE(insn->chanspec);
outw(chan, dev->iobase + 2);
......@@ -129,7 +124,22 @@ static int das16cs_ai_rinsn(struct comedi_device *dev,
outw(devpriv->status1, dev->iobase + 4);
devpriv->status2 &= ~0xff00;
devpriv->status2 |= range_bits[range];
switch (range) {
case 0:
devpriv->status2 |= 0x800;
break;
case 1:
devpriv->status2 |= 0x000;
break;
case 2:
devpriv->status2 |= 0x100;
break;
case 3:
devpriv->status2 |= 0x200;
break;
default:
return -EINVAL;
}
outw(devpriv->status2, dev->iobase + 6);
for (i = 0; i < insn->n; i++) {
......@@ -144,7 +154,7 @@ static int das16cs_ai_rinsn(struct comedi_device *dev,
dev_dbg(dev->class_dev, "cb_das16_cs: ai timeout\n");
return -ETIME;
}
data[i] = (unsigned short)inw(dev->iobase + 0);
data[i] = inw(dev->iobase + 0);
}
return i;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册