Skip to content

Commit a65e141

Browse files
bigguinessgregkh
authored andcommitted
staging: comedi: adv_pci1710: tidy up setup_channel_list()
Rename this function so it has namespace associated with the driver. Tidy up the code to clarify the function. Remove the unnecessary static const array muxonechan[]. 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>
1 parent 133dfbf commit a65e141

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

drivers/staging/comedi/drivers/adv_pci1710.c

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -276,14 +276,6 @@ struct pci1710_private {
276276
* internal state */
277277
};
278278

279-
/* used for gain list programming */
280-
static const unsigned int muxonechan[] = {
281-
0x0000, 0x0101, 0x0202, 0x0303, 0x0404, 0x0505, 0x0606, 0x0707,
282-
0x0808, 0x0909, 0x0a0a, 0x0b0b, 0x0c0c, 0x0d0d, 0x0e0e, 0x0f0f,
283-
0x1010, 0x1111, 0x1212, 0x1313, 0x1414, 0x1515, 0x1616, 0x1717,
284-
0x1818, 0x1919, 0x1a1a, 0x1b1b, 0x1c1c, 0x1d1d, 0x1e1e, 0x1f1f
285-
};
286-
287279
static int pci171x_ai_dropout(struct comedi_device *dev,
288280
struct comedi_subdevice *s,
289281
unsigned int chan,
@@ -375,30 +367,39 @@ static int pci171x_ai_check_chanlist(struct comedi_device *dev,
375367
return 0;
376368
}
377369

378-
static void setup_channel_list(struct comedi_device *dev,
379-
struct comedi_subdevice *s,
380-
unsigned int *chanlist, unsigned int n_chan,
381-
unsigned int seglen)
370+
static void pci171x_ai_setup_chanlist(struct comedi_device *dev,
371+
struct comedi_subdevice *s,
372+
unsigned int *chanlist,
373+
unsigned int n_chan,
374+
unsigned int seglen)
382375
{
383376
const struct boardtype *board = dev->board_ptr;
384377
struct pci1710_private *devpriv = dev->private;
385-
unsigned int i, range, chanprog;
378+
unsigned int first_chan = CR_CHAN(chanlist[0]);
379+
unsigned int last_chan = CR_CHAN(chanlist[seglen - 1]);
380+
unsigned int i;
386381

387382
for (i = 0; i < seglen; i++) { /* store range list to card */
388-
chanprog = muxonechan[CR_CHAN(chanlist[i])];
389-
outw(chanprog, dev->iobase + PCI171x_MUX); /* select channel */
390-
range = board->rangecode_ai[CR_RANGE(chanlist[i])];
391-
if (CR_AREF(chanlist[i]) == AREF_DIFF)
392-
range |= 0x0020;
393-
outw(range, dev->iobase + PCI171x_RANGE); /* select gain */
394-
devpriv->act_chanlist[i] = CR_CHAN(chanlist[i]);
383+
unsigned int chan = CR_CHAN(chanlist[i]);
384+
unsigned int range = CR_RANGE(chanlist[i]);
385+
unsigned int aref = CR_AREF(chanlist[i]);
386+
unsigned int rangeval;
387+
388+
rangeval = board->rangecode_ai[range];
389+
if (aref == AREF_DIFF)
390+
rangeval |= 0x0020;
391+
392+
/* select channel and set range */
393+
outw(chan | (chan << 8), dev->iobase + PCI171x_MUX);
394+
outw(rangeval, dev->iobase + PCI171x_RANGE);
395+
396+
devpriv->act_chanlist[i] = chan;
395397
}
396398
for ( ; i < n_chan; i++) /* store remainder of channel list */
397399
devpriv->act_chanlist[i] = CR_CHAN(chanlist[i]);
398400

399-
devpriv->ai_et_MuxVal =
400-
CR_CHAN(chanlist[0]) | (CR_CHAN(chanlist[seglen - 1]) << 8);
401401
/* select channel interval to scan */
402+
devpriv->ai_et_MuxVal = first_chan | (last_chan << 8);
402403
outw(devpriv->ai_et_MuxVal, dev->iobase + PCI171x_MUX);
403404
}
404405

@@ -431,7 +432,7 @@ static int pci171x_ai_insn_read(struct comedi_device *dev,
431432
outb(0, dev->iobase + PCI171x_CLRFIFO);
432433
outb(0, dev->iobase + PCI171x_CLRINT);
433434

434-
setup_channel_list(dev, s, &insn->chanspec, 1, 1);
435+
pci171x_ai_setup_chanlist(dev, s, &insn->chanspec, 1, 1);
435436

436437
for (i = 0; i < insn->n; i++) {
437438
unsigned int val;
@@ -813,8 +814,8 @@ static int pci171x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
813814

814815
pci171x_start_pacer(dev, false);
815816

816-
setup_channel_list(dev, s, cmd->chanlist, cmd->chanlist_len,
817-
devpriv->saved_seglen);
817+
pci171x_ai_setup_chanlist(dev, s, cmd->chanlist, cmd->chanlist_len,
818+
devpriv->saved_seglen);
818819

819820
outb(0, dev->iobase + PCI171x_CLRFIFO);
820821
outb(0, dev->iobase + PCI171x_CLRINT);

0 commit comments

Comments
 (0)