staging: comedi: dt3000: don't fail attach if irq is not available
The irq is only needed to support async commands. Don't fail the attach if it is not available. Only hook up the command support if the request_irq() was successful. 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>
This commit is contained in:
parent
1f0e716188
commit
98f6303b6f
@ -702,29 +702,33 @@ static int dt3000_auto_attach(struct comedi_device *dev,
|
||||
if (!devpriv->io_addr)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = request_irq(pcidev->irq, dt3k_interrupt, IRQF_SHARED,
|
||||
dev->board_name, dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
dev->irq = pcidev->irq;
|
||||
if (pcidev->irq) {
|
||||
ret = request_irq(pcidev->irq, dt3k_interrupt, IRQF_SHARED,
|
||||
dev->board_name, dev);
|
||||
if (ret == 0)
|
||||
dev->irq = pcidev->irq;
|
||||
}
|
||||
|
||||
ret = comedi_alloc_subdevices(dev, 4);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
s = &dev->subdevices[0];
|
||||
dev->read_subdev = s;
|
||||
/* ai subdevice */
|
||||
s->type = COMEDI_SUBD_AI;
|
||||
s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF | SDF_CMD_READ;
|
||||
s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF;
|
||||
s->n_chan = this_board->adchan;
|
||||
s->insn_read = dt3k_ai_insn;
|
||||
s->maxdata = (1 << this_board->adbits) - 1;
|
||||
s->len_chanlist = 512;
|
||||
s->range_table = &range_dt3000_ai; /* XXX */
|
||||
s->do_cmd = dt3k_ai_cmd;
|
||||
s->do_cmdtest = dt3k_ai_cmdtest;
|
||||
s->cancel = dt3k_ai_cancel;
|
||||
if (dev->irq) {
|
||||
dev->read_subdev = s;
|
||||
s->subdev_flags |= SDF_CMD_READ;
|
||||
s->len_chanlist = 512;
|
||||
s->do_cmd = dt3k_ai_cmd;
|
||||
s->do_cmdtest = dt3k_ai_cmdtest;
|
||||
s->cancel = dt3k_ai_cancel;
|
||||
}
|
||||
|
||||
s = &dev->subdevices[1];
|
||||
/* ao subsystem */
|
||||
|
Loading…
x
Reference in New Issue
Block a user