staging: comedi: pcl812: only init async command members when needed
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Tue, 3 Dec 2013 19:07:23 +0000 (12:07 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Dec 2013 23:25:31 +0000 (15:25 -0800)
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.

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/pcl812.c

index aabadea..218b05d 100644 (file)
@@ -1201,7 +1201,6 @@ no_dma:
                        break;
                }
                s->maxdata = board->ai_maxdata;
-               s->len_chanlist = MAX_CHANLIST_LEN;
                s->range_table = board->rangelist_ai;
                if (board->board_type == boardACL8216)
                        s->insn_read = acl8216_ai_insn_read;
@@ -1209,13 +1208,14 @@ no_dma:
                        s->insn_read = pcl812_ai_insn_read;
 
                devpriv->use_MPC = board->haveMPC508;
-               s->cancel = pcl812_ai_cancel;
                if (dev->irq) {
                        dev->read_subdev = s;
                        s->subdev_flags |= SDF_CMD_READ;
+                       s->len_chanlist = MAX_CHANLIST_LEN;
                        s->do_cmdtest = pcl812_ai_cmdtest;
                        s->do_cmd = pcl812_ai_cmd;
                        s->poll = pcl812_ai_poll;
+                       s->cancel = pcl812_ai_cancel;
                }
                switch (board->board_type) {
                case boardPCL812PG: