Browse Source

staging: comedi: das800: allow attaching without interrupt support

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>
H Hartley Sweeten 12 years ago
parent
commit
f05ffb6e12
1 changed files with 6 additions and 14 deletions
  1. 6 14
      drivers/staging/comedi/drivers/das800.c

+ 6 - 14
drivers/staging/comedi/drivers/das800.c

@@ -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)