staging: comedi: me_daq: analog output subdevice could be unused
authorH Hartley Sweeten <hartleys@visionengravers.com>
Thu, 25 Oct 2012 22:07:17 +0000 (15:07 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Oct 2012 16:20:01 +0000 (09:20 -0700)
One of the boards supported by this driver does not have analog
outputs. Fix the attach code to account for this.

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 182a184604ee289720dbab6db26faaef89a52f09..f5ede1ae1134fec54dd1c87faf3816919d63bbd8 100644 (file)
@@ -735,14 +735,18 @@ static int me_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev)
        s->do_cmd = me_ai_do_cmd;
 
        s = &dev->subdevices[1];
-       s->type = COMEDI_SUBD_AO;
-       s->subdev_flags = SDF_WRITEABLE | SDF_COMMON;
-       s->n_chan = board->ao_channel_nbr;
-       s->maxdata = board->ao_resolution_mask;
-       s->len_chanlist = board->ao_channel_nbr;
-       s->range_table = board->ao_range_list;
-       s->insn_read = me_ao_insn_read;
-       s->insn_write = me_ao_insn_write;
+       if (board->ao_channel_nbr) {
+               s->type = COMEDI_SUBD_AO;
+               s->subdev_flags = SDF_WRITEABLE | SDF_COMMON;
+               s->n_chan = board->ao_channel_nbr;
+               s->maxdata = board->ao_resolution_mask;
+               s->len_chanlist = board->ao_channel_nbr;
+               s->range_table = board->ao_range_list;
+               s->insn_read = me_ao_insn_read;
+               s->insn_write = me_ao_insn_write;
+       } else {
+               s->type = COMEDI_SUBD_UNUSED;
+       }
 
        s = &dev->subdevices[2];
        s->type = COMEDI_SUBD_DIO;