staging: comedi: amplc_pc236: don't check bus type in attach
Since the legacy attach routine `pc236_attach()` is only called for board names matching an entry in our array of ISA boards `pc236_isa_boards[]`, and it is reasonable to expect all elements of `pc236_isa_boards[]` to have their `bustype` member initialized correctly to `isa_bustype`, don't bother checking the bus type in `pc236_attach()`. Add `if (!DO_ISA) return -EINVAL` to optimize out the remainder of the function if `CONFIG_COMEDI_AMPLC_PC236_ISA` is not defined. Similarly, don't bother checking the bus type in `pc236_find_pci_board()` as it is reasonable to expect all elements of `pc236_pci_boards[]` to have their `bustype` member initialized correctly to `pci_bustype`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
22c39196b6
commit
ffe2d9fd49
1 changed files with 8 additions and 18 deletions
|
@ -129,8 +129,7 @@ static const struct pc236_board *pc236_find_pci_board(struct pci_dev *pci_dev)
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(pc236_pci_boards); i++)
|
for (i = 0; i < ARRAY_SIZE(pc236_pci_boards); i++)
|
||||||
if (is_pci_board(&pc236_pci_boards[i]) &&
|
if (pci_dev->device == pc236_pci_boards[i].devid)
|
||||||
pci_dev->device == pc236_pci_boards[i].devid)
|
|
||||||
return &pc236_pci_boards[i];
|
return &pc236_pci_boards[i];
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -349,30 +348,21 @@ static int pc236_common_attach(struct comedi_device *dev, unsigned long iobase,
|
||||||
|
|
||||||
static int pc236_attach(struct comedi_device *dev, struct comedi_devconfig *it)
|
static int pc236_attach(struct comedi_device *dev, struct comedi_devconfig *it)
|
||||||
{
|
{
|
||||||
const struct pc236_board *thisboard = comedi_board(dev);
|
|
||||||
struct pc236_private *devpriv;
|
struct pc236_private *devpriv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (!DO_ISA)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
devpriv = comedi_alloc_devpriv(dev, sizeof(*devpriv));
|
devpriv = comedi_alloc_devpriv(dev, sizeof(*devpriv));
|
||||||
if (!devpriv)
|
if (!devpriv)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
/* Process options according to bus type. */
|
|
||||||
if (is_isa_board(thisboard)) {
|
|
||||||
ret = comedi_request_region(dev, it->options[0], 0x4);
|
ret = comedi_request_region(dev, it->options[0], 0x4);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return pc236_common_attach(dev, dev->iobase, it->options[1], 0);
|
return pc236_common_attach(dev, dev->iobase, it->options[1], 0);
|
||||||
} else if (is_pci_board(thisboard)) {
|
|
||||||
dev_err(dev->class_dev,
|
|
||||||
"Manual configuration of PCI board '%s' is not supported\n",
|
|
||||||
thisboard->name);
|
|
||||||
return -EIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
dev_err(dev->class_dev, "BUG! cannot determine board type!\n");
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pc236_auto_attach(struct comedi_device *dev,
|
static int pc236_auto_attach(struct comedi_device *dev,
|
||||||
|
|
Loading…
Reference in a new issue