{
const struct das800_board *thisboard = comedi_board(dev);
struct das800_private *devpriv = dev->private;
- int startChan, endChan, scan, gain;
+ struct comedi_async *async = s->async;
+ unsigned int gain = CR_RANGE(async->cmd.chanlist[0]);
+ unsigned int start_chan = CR_CHAN(async->cmd.chanlist[0]);
+ unsigned int end_chan = (start_chan + async->cmd.chanlist_len - 1) % 8;
+ unsigned int scan_chans = (end_chan << 3) | start_chan;
int conv_bits;
unsigned long irq_flags;
- struct comedi_async *async = s->async;
das800_disable(dev);
- /* set channel scan limits */
- startChan = CR_CHAN(async->cmd.chanlist[0]);
- endChan = (startChan + async->cmd.chanlist_len - 1) % 8;
- scan = (endChan << 3) | startChan;
-
spin_lock_irqsave(&dev->spinlock, irq_flags);
/* set scan limits */
- das800_ind_write(dev, scan, SCAN_LIMITS);
+ das800_ind_write(dev, scan_chans, SCAN_LIMITS);
spin_unlock_irqrestore(&dev->spinlock, irq_flags);
/* set gain */
- gain = CR_RANGE(async->cmd.chanlist[0]);
if (thisboard->resolution == 12 && gain > 0)
gain += 0x7;
gain &= 0xf;