The 'len_chanlist' and 'cancel' members of the comedi_subdevice are
only used with async command support. Only initialize them if the irq
was sucessfully requested.

Also, only init the dev->read_subdev if we have the irq.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/adv_pci1710.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c 
b/drivers/staging/comedi/drivers/adv_pci1710.c
index a1519c9..69ab2a6 100644
--- a/drivers/staging/comedi/drivers/adv_pci1710.c
+++ b/drivers/staging/comedi/drivers/adv_pci1710.c
@@ -1264,21 +1264,21 @@ static int pci1710_auto_attach(struct comedi_device 
*dev,
 
        if (this_board->n_aichan) {
                s = &dev->subdevices[subdev];
-               dev->read_subdev = s;
                s->type = COMEDI_SUBD_AI;
                s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_GROUND;
                if (this_board->n_aichand)
                        s->subdev_flags |= SDF_DIFF;
                s->n_chan = this_board->n_aichan;
                s->maxdata = this_board->ai_maxdata;
-               s->len_chanlist = this_board->n_aichan;
                s->range_table = this_board->rangelist_ai;
-               s->cancel = pci171x_ai_cancel;
                s->insn_read = pci171x_insn_read_ai;
                if (dev->irq) {
+                       dev->read_subdev = s;
                        s->subdev_flags |= SDF_CMD_READ;
+                       s->len_chanlist = s->n_chan;
                        s->do_cmdtest = pci171x_ai_cmdtest;
                        s->do_cmd = pci171x_ai_cmd;
+                       s->cancel = pci171x_ai_cancel;
                }
                devpriv->i8254_osc_base = I8254_OSC_BASE_10MHZ;
                subdev++;
-- 
1.8.4.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to