Skip to content

Commit

Permalink
staging: comedi: dnya_pci10xx: move boardinfo values into subdevice s…
Browse files Browse the repository at this point in the history
…etup

There is only one "boardtype" actually supported by this driver.
The second entry in the boardinfo is a dummy entry that would
result in an unusable device.

Remove the boardinfo fields and just use the open coded values
in the subdevice setup.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Aug 15, 2012
1 parent 4884f72 commit 8fda437
Showing 1 changed file with 9 additions and 23 deletions.
32 changes: 9 additions & 23 deletions drivers/staging/comedi/drivers/dyna_pci10xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,24 +57,12 @@ static const char range_codes_pci1050_ai[] = { 0x00, 0x10, 0x30 };
struct boardtype {
const char *name;
int device_id;
int ai_chans;
int ao_chans;
int di_chans;
int do_chans;
const struct comedi_lrange *range_ai;
const char *range_codes_ai;
};

static const struct boardtype boardtypes[] = {
{
.name = "dyna_pci1050",
.device_id = 0x1050,
.ai_chans = 16,
.ao_chans = 16,
.di_chans = 16,
.do_chans = 16,
.range_ai = &range_pci1050_ai,
.range_codes_ai = range_codes_pci1050_ai,
},
/* dummy entry corresponding to driver name */
{.name = DRV_NAME},
Expand All @@ -94,15 +82,14 @@ static int dyna_pci10xx_insn_read_ai(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
const struct boardtype *thisboard = comedi_board(dev);
struct dyna_pci10xx_private *devpriv = dev->private;
int n, counter;
u16 d = 0;
unsigned int chan, range;

/* get the channel number and range */
chan = CR_CHAN(insn->chanspec);
range = thisboard->range_codes_ai[CR_RANGE((insn->chanspec))];
range = range_codes_pci1050_ai[CR_RANGE((insn->chanspec))];

mutex_lock(&devpriv->mutex);
/* convert n samples */
Expand Down Expand Up @@ -139,13 +126,12 @@ static int dyna_pci10xx_insn_write_ao(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
const struct boardtype *thisboard = comedi_board(dev);
struct dyna_pci10xx_private *devpriv = dev->private;
int n;
unsigned int chan, range;

chan = CR_CHAN(insn->chanspec);
range = thisboard->range_codes_ai[CR_RANGE((insn->chanspec))];
range = range_codes_pci1050_ai[CR_RANGE((insn->chanspec))];

mutex_lock(&devpriv->mutex);
for (n = 0; n < insn->n; n++) {
Expand Down Expand Up @@ -259,17 +245,17 @@ static int dyna_pci10xx_attach_pci(struct comedi_device *dev,
s = dev->subdevices + 0;
s->type = COMEDI_SUBD_AI;
s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF;
s->n_chan = thisboard->ai_chans;
s->n_chan = 16;
s->maxdata = 0x0FFF;
s->range_table = thisboard->range_ai;
s->range_table = &range_pci1050_ai;
s->len_chanlist = 16;
s->insn_read = dyna_pci10xx_insn_read_ai;

/* analog output */
s = dev->subdevices + 1;
s->type = COMEDI_SUBD_AO;
s->subdev_flags = SDF_WRITABLE;
s->n_chan = thisboard->ao_chans;
s->n_chan = 16;
s->maxdata = 0x0FFF;
s->range_table = &range_unipolar10;
s->len_chanlist = 16;
Expand All @@ -279,20 +265,20 @@ static int dyna_pci10xx_attach_pci(struct comedi_device *dev,
s = dev->subdevices + 2;
s->type = COMEDI_SUBD_DI;
s->subdev_flags = SDF_READABLE | SDF_GROUND;
s->n_chan = thisboard->di_chans;
s->n_chan = 16;
s->maxdata = 1;
s->range_table = &range_digital;
s->len_chanlist = thisboard->di_chans;
s->len_chanlist = 16;
s->insn_bits = dyna_pci10xx_di_insn_bits;

/* digital output */
s = dev->subdevices + 3;
s->type = COMEDI_SUBD_DO;
s->subdev_flags = SDF_WRITABLE | SDF_GROUND;
s->n_chan = thisboard->do_chans;
s->n_chan = 16;
s->maxdata = 1;
s->range_table = &range_digital;
s->len_chanlist = thisboard->do_chans;
s->len_chanlist = 16;
s->state = 0;
s->insn_bits = dyna_pci10xx_do_insn_bits;

Expand Down

0 comments on commit 8fda437

Please sign in to comment.