struct comedi_subdevice *s;
int ret;
unsigned int irq;
- unsigned long iobase;
-
- iobase = it->options[0];
devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL);
if (!devpriv)
return -ENOMEM;
dev->private = devpriv;
- if (!request_region(iobase, DAS16M1_SIZE, dev->board_name)) {
- comedi_error(dev, "I/O port conflict\n");
- return -EIO;
- }
- if (!request_region(iobase + DAS16M1_82C55, DAS16M1_SIZE2,
+ ret = comedi_request_region(dev, it->options[0], DAS16M1_SIZE);
+ if (ret)
+ return ret;
+ /* Request an additional region for the 8255 */
+ if (!request_region(dev->iobase + DAS16M1_82C55, DAS16M1_SIZE2,
dev->board_name)) {
- release_region(iobase, DAS16M1_SIZE);
- comedi_error(dev, "I/O port conflict\n");
+ release_region(dev->iobase, DAS16M1_SIZE);
+ dev_warn(dev->class_dev, "%s: I/O port conflict (%#lx,%d)\n",
+ dev->board_name,
+ dev->iobase + DAS16M1_82C55, DAS16M1_SIZE2);
return -EIO;
}
- dev->iobase = iobase;
/* now for the irq */
irq = it->options[1];