staging: comedi: das800: allow attaching without interrupt support
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Tue, 23 Apr 2013 01:35:12 +0000 (18:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Apr 2013 17:41:45 +0000 (10:41 -0700)
Interrupts are only requires for the analog input async command support.

Allow the driver to attach to the board if the request_irq() fails.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/das800.c

index 78e913e3dfe3da453ede9433fa4cb56a9fa2bc3b..1260ebacca18199f1cb915cae6654c96903fb8d0 100644 (file)
@@ -737,22 +737,14 @@ static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        }
        dev->board_ptr = das800_boards + board;
        thisboard = comedi_board(dev);
+       dev->board_name = thisboard->name;
 
-       /* grab our IRQ */
-       if (irq == 1 || irq > 7) {
-               dev_err(dev->class_dev, "irq out of range\n");
-               return -EINVAL;
-       }
-       if (irq) {
-               if (request_irq(irq, das800_interrupt, 0, "das800", dev)) {
-                       dev_err(dev->class_dev, "unable to allocate irq %u\n",
-                               irq);
-                       return -EINVAL;
-               }
+       if (irq > 1 && irq <= 7) {
+               ret = request_irq(irq, das800_interrupt, 0, dev->board_name,
+                                 dev);
+               if (ret == 0)
+                       dev->irq = irq;
        }
-       dev->irq = irq;
-
-       dev->board_name = thisboard->name;
 
        ret = comedi_alloc_subdevices(dev, 3);
        if (ret)