The async command support requires an irq. Only initialize the subdevice
command support if the request_irq was successfull.

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/das1800.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/comedi/drivers/das1800.c 
b/drivers/staging/comedi/drivers/das1800.c
index a913787..c82de28 100644
--- a/drivers/staging/comedi/drivers/das1800.c
+++ b/drivers/staging/comedi/drivers/das1800.c
@@ -1568,20 +1568,23 @@ static int das1800_attach(struct comedi_device *dev,
 
        /* analog input subdevice */
        s = &dev->subdevices[0];
-       dev->read_subdev = s;
        s->type = COMEDI_SUBD_AI;
-       s->subdev_flags = SDF_READABLE | SDF_DIFF | SDF_GROUND | SDF_CMD_READ;
+       s->subdev_flags = SDF_READABLE | SDF_DIFF | SDF_GROUND;
        if (thisboard->common)
                s->subdev_flags |= SDF_COMMON;
        s->n_chan = thisboard->qram_len;
-       s->len_chanlist = thisboard->qram_len;
        s->maxdata = (1 << thisboard->resolution) - 1;
        s->range_table = thisboard->range_ai;
-       s->do_cmd = das1800_ai_do_cmd;
-       s->do_cmdtest = das1800_ai_do_cmdtest;
        s->insn_read = das1800_ai_rinsn;
-       s->poll = das1800_ai_poll;
-       s->cancel = das1800_cancel;
+       if (dev->irq) {
+               dev->read_subdev = s;
+               s->subdev_flags |= SDF_CMD_READ;
+               s->len_chanlist = s->n_chan;
+               s->do_cmd = das1800_ai_do_cmd;
+               s->do_cmdtest = das1800_ai_do_cmdtest;
+               s->poll = das1800_ai_poll;
+               s->cancel = das1800_cancel;
+       }
 
        /* analog out */
        s = &dev->subdevices[1];
-- 
1.8.4.4

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

Reply via email to