]> Pileus Git - ~andy/linux/commitdiff
staging: comedi: me_daq: simplify analog output boardinfo
authorH Hartley Sweeten <hartleys@visionengravers.com>
Thu, 25 Oct 2012 22:10:52 +0000 (15:10 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Oct 2012 16:20:03 +0000 (09:20 -0700)
The boards supported by this driver either have analog outputs or don't
have them. Add a new boardinfo value, 'has_ao', to indicate this.

The boards that have analog outputs always have 4, 12-bit channels. Remove
the unnecessary boardinfo and just open-code the values in the subdevice
initialization.

The boards with analog outputs also share the same output range capabilities.
Rename the comedi_lrange to make it common for all board types.

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>
drivers/staging/comedi/drivers/me_daq.c

index 686a1c4f5438cc84375c8263263c5c4965f83f05..ceb5b82762e9d801ae53a049f4c5b0c766888b67 100644 (file)
@@ -139,7 +139,7 @@ static const struct comedi_lrange me_ai_range = {
        }
 };
 
-static const struct comedi_lrange me2600_ao_range = {
+static const struct comedi_lrange me_ao_range = {
        3, {
                BIP_RANGE(10),
                BIP_RANGE(5),
@@ -150,18 +150,14 @@ static const struct comedi_lrange me2600_ao_range = {
 struct me_board {
        const char *name;
        int device_id;
-       int ao_chans;
-       int ao_bits;
-       const struct comedi_lrange *ao_range;
+       int has_ao;
 };
 
 static const struct me_board me_boards[] = {
        {
                .name           = "me-2600i",
                .device_id      = ME2600_DEVICE_ID,
-               .ao_chans       = 4,
-               .ao_bits        = 12,
-               .ao_range       = &me2600_ao_range,
+               .has_ao         = 1,
        }, {
                .name           = "me-2000i",
                .device_id      = ME2000_DEVICE_ID,
@@ -631,13 +627,13 @@ static int me_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev)
        s->insn_read    = me_ai_insn_read;
 
        s = &dev->subdevices[1];
-       if (board->ao_chans) {
+       if (board->has_ao) {
                s->type         = COMEDI_SUBD_AO;
                s->subdev_flags = SDF_WRITEABLE | SDF_COMMON;
-               s->n_chan       = board->ao_chans;
-               s->maxdata      = (1 << board->ao_bits) - 1;
-               s->len_chanlist = board->ao_chans;
-               s->range_table  = board->ao_range;
+               s->n_chan       = 4;
+               s->maxdata      = 0x0fff;
+               s->len_chanlist = 4;
+               s->range_table  = &me_ao_range;
                s->insn_read    = me_ao_insn_read;
                s->insn_write   = me_ao_insn_write;
        } else {