diff --git a/drivers/staging/comedi/drivers/das800.c b/drivers/staging/comedi/drivers/das800.c index 4c28b383869d..3711f81321d9 100644 --- a/drivers/staging/comedi/drivers/das800.c +++ b/drivers/staging/comedi/drivers/das800.c @@ -314,9 +314,6 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev, const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv = dev->private; int err = 0; - int tmp; - int gain, startChan; - int i; /* Step 1 : check if triggers are trivially valid */ @@ -362,11 +359,13 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev, /* step 4: fix up any arguments */ if (cmd->convert_src == TRIG_TIMER) { - tmp = cmd->convert_arg; + int tmp = cmd->convert_arg; + /* calculate counter values that give desired timing */ - i8253_cascade_ns_to_timer_2div(TIMER_BASE, &(devpriv->divisor1), - &(devpriv->divisor2), - &(cmd->convert_arg), + i8253_cascade_ns_to_timer_2div(TIMER_BASE, + &devpriv->divisor1, + &devpriv->divisor2, + &cmd->convert_arg, cmd->flags & TRIG_ROUND_MASK); if (tmp != cmd->convert_arg) err++; @@ -377,18 +376,21 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev, /* check channel/gain list against card's limitations */ if (cmd->chanlist) { - gain = CR_RANGE(cmd->chanlist[0]); - startChan = CR_CHAN(cmd->chanlist[0]); + unsigned int chan = CR_CHAN(cmd->chanlist[0]); + unsigned int range = CR_RANGE(cmd->chanlist[0]); + unsigned int next; + int i; + for (i = 1; i < cmd->chanlist_len; i++) { - if (CR_CHAN(cmd->chanlist[i]) != - (startChan + i) % N_CHAN_AI) { - comedi_error(dev, - "entries in chanlist must be consecutive channels, counting upwards\n"); + next = cmd->chanlist[i]; + if (CR_CHAN(next) != (chan + i) % N_CHAN_AI) { + dev_err(dev->class_dev, + "chanlist must be consecutive, counting upwards\n"); err++; } - if (CR_RANGE(cmd->chanlist[i]) != gain) { - comedi_error(dev, - "entries in chanlist must all have the same gain\n"); + if (CR_RANGE(next) != range) { + dev_err(dev->class_dev, + "chanlist must all have the same gain\n"); err++; } }