staging: comedi: me4000: fix ai_write_chanlist()
Rename this function so it has namespace associated with the driver. The last entry of the chanlist needs the ME4000_AI_LIST_LAST_ENTRY bit set to end the list. Fix the function and tidy if up a bit. 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>
This commit is contained in:
parent
245bd46244
commit
518c5b64f6
1 changed files with 12 additions and 11 deletions
|
@ -652,25 +652,26 @@ static void ai_write_timer(struct comedi_device *dev,
|
||||||
outl(chan_ticks - 1, dev->iobase + ME4000_AI_CHAN_TIMER_REG);
|
outl(chan_ticks - 1, dev->iobase + ME4000_AI_CHAN_TIMER_REG);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ai_write_chanlist(struct comedi_device *dev,
|
static int me4000_ai_write_chanlist(struct comedi_device *dev,
|
||||||
struct comedi_subdevice *s, struct comedi_cmd *cmd)
|
struct comedi_subdevice *s,
|
||||||
|
struct comedi_cmd *cmd)
|
||||||
{
|
{
|
||||||
unsigned int entry;
|
|
||||||
unsigned int chan;
|
|
||||||
unsigned int rang;
|
|
||||||
unsigned int aref;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < cmd->chanlist_len; i++) {
|
for (i = 0; i < cmd->chanlist_len; i++) {
|
||||||
chan = CR_CHAN(cmd->chanlist[i]);
|
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
|
||||||
rang = CR_RANGE(cmd->chanlist[i]);
|
unsigned int range = CR_RANGE(cmd->chanlist[i]);
|
||||||
aref = CR_AREF(cmd->chanlist[i]);
|
unsigned int aref = CR_AREF(cmd->chanlist[i]);
|
||||||
|
unsigned int entry;
|
||||||
|
|
||||||
entry = chan | ME4000_AI_LIST_RANGE(rang);
|
entry = chan | ME4000_AI_LIST_RANGE(range);
|
||||||
|
|
||||||
if (aref == AREF_DIFF)
|
if (aref == AREF_DIFF)
|
||||||
entry |= ME4000_AI_LIST_INPUT_DIFFERENTIAL;
|
entry |= ME4000_AI_LIST_INPUT_DIFFERENTIAL;
|
||||||
|
|
||||||
|
if (i == (cmd->chanlist_len - 1))
|
||||||
|
entry |= ME4000_AI_LIST_LAST_ENTRY;
|
||||||
|
|
||||||
outl(entry, dev->iobase + ME4000_AI_CHANNEL_LIST_REG);
|
outl(entry, dev->iobase + ME4000_AI_CHANNEL_LIST_REG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -738,7 +739,7 @@ static int ai_prepare(struct comedi_device *dev,
|
||||||
outl(tmp, dev->iobase + ME4000_AI_CTRL_REG);
|
outl(tmp, dev->iobase + ME4000_AI_CTRL_REG);
|
||||||
|
|
||||||
/* Write the channel list */
|
/* Write the channel list */
|
||||||
ai_write_chanlist(dev, s, cmd);
|
me4000_ai_write_chanlist(dev, s, cmd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue