Skip to content

Commit

Permalink
staging: comedi: dyna_pci10xx: cleanup "find pci device" code
Browse files Browse the repository at this point in the history
Cleanup the "find pci device" code so that it follows the style
of the other comedi pci drivers.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Jul 19, 2012
1 parent 1f20b97 commit 5d30e51
Showing 1 changed file with 17 additions and 41 deletions.
58 changes: 17 additions & 41 deletions drivers/staging/comedi/drivers/dyna_pci10xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,55 +233,31 @@ static struct pci_dev *dyna_pci10xx_find_pci_dev(struct comedi_device *dev,
struct comedi_devconfig *it)
{
struct pci_dev *pcidev = NULL;
int opt_bus = it->options[0];
int opt_slot = it->options[1];
int board_index;
int bus = it->options[0];
int slot = it->options[1];
int i;

for (pcidev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, NULL);
pcidev != NULL;
pcidev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pcidev)) {

board_index = -1;
for (i = 0; i < ARRAY_SIZE(boardtypes); ++i) {
if ((pcidev->vendor == PCI_VENDOR_ID_DYNALOG) &&
(pcidev->device == boardtypes[i].device_id)) {
board_index = i;
break;
}
for_each_pci_dev(pcidev) {
if (bus || slot) {
if (bus != pcidev->bus->number ||
slot != PCI_SLOT(pcidev->devfn))
continue;
}
if (board_index < 0)
if (pcidev->vendor != PCI_VENDOR_ID_DYNALOG)
continue;

/* Found matching vendor/device. */
if (opt_bus || opt_slot) {
/* Check bus/slot. */
if (opt_bus != pcidev->bus->number
|| opt_slot != PCI_SLOT(pcidev->devfn))
continue; /* no match */
}

goto found;
}
printk(KERN_ERR "comedi: dyna_pci10xx: no supported device found!\n");
return NULL;

found:
for (i = 0; i < ARRAY_SIZE(boardtypes); ++i) {
if (pcidev->device != boardtypes[i].device_id)
continue;

if (!pcidev) {
if (opt_bus || opt_slot) {
printk(KERN_ERR "comedi: dyna_pci10xx: "
"invalid PCI device at b:s %d:%d\n",
opt_bus, opt_slot);
} else {
printk(KERN_ERR "comedi: dyna_pci10xx: "
"invalid PCI device\n");
dev->board_ptr = &boardtypes[i];
return pcidev;
}
return NULL;
}

dev->board_ptr = &boardtypes[board_index];
return pcidev;
dev_err(dev->class_dev,
"No supported board found! (req. bus %d, slot %d)\n",
bus, slot);
return NULL;
}

static int dyna_pci10xx_attach(struct comedi_device *dev,
Expand Down

0 comments on commit 5d30e51

Please sign in to comment.