From: H Hartley Sweeten Date: Thu, 19 Jul 2012 01:39:42 +0000 (-0700) Subject: staging: comedi: amplc_pc263: cleanup "find pci device" code X-Git-Tag: next-20120724~21^2~112 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=1c16519fc2d63d0f58a7c54a47404e3de2c20396;p=karo-tx-linux.git staging: comedi: amplc_pc263: cleanup "find pci device" code For aesthetic reasons, rename the function and pass the comedi_devconfig struct instead of pre-parsing out the bus/slot information. Use for_each_pci_dev() instead of open-coding the loop using pci_get_device(). Consolidate the dev_err messages when a pci device is not found. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/amplc_pc263.c b/drivers/staging/comedi/drivers/amplc_pc263.c index e90178d29611..8ed860156cb7 100644 --- a/drivers/staging/comedi/drivers/amplc_pc263.c +++ b/drivers/staging/comedi/drivers/amplc_pc263.c @@ -121,26 +121,27 @@ static const struct pc263_board *pc263_find_pci_board(struct pci_dev *pci_dev) * This function looks for a PCI device matching the requested board name, * bus and slot. */ -static struct pci_dev * -pc263_find_pci(struct comedi_device *dev, int bus, int slot) +static struct pci_dev *pc263_find_pci_dev(struct comedi_device *dev, + struct comedi_devconfig *it) { const struct pc263_board *thisboard = comedi_board(dev); struct pci_dev *pci_dev = NULL; + int bus = it->options[0]; + int slot = it->options[1]; - /* Look for matching PCI device. */ - for (pci_dev = pci_get_device(PCI_VENDOR_ID_AMPLICON, PCI_ANY_ID, NULL); - pci_dev != NULL; - pci_dev = pci_get_device(PCI_VENDOR_ID_AMPLICON, - PCI_ANY_ID, pci_dev)) { - /* If bus/slot specified, check them. */ + for_each_pci_dev(pci_dev) { if (bus || slot) { - if (bus != pci_dev->bus->number - || slot != PCI_SLOT(pci_dev->devfn)) + if (bus != pci_dev->bus->number || + slot != PCI_SLOT(pci_dev->devfn)) continue; } + if (pci_dev->vendor != PCI_VENDOR_ID_AMPLICON) + continue; + if (thisboard->model == anypci_model) { /* Wildcard board matches any supported PCI board. */ const struct pc263_board *foundboard; + foundboard = pc263_find_pci_board(pci_dev); if (foundboard == NULL) continue; @@ -151,19 +152,11 @@ pc263_find_pci(struct comedi_device *dev, int bus, int slot) if (pci_dev->device != thisboard->devid) continue; } - - /* Found a match. */ return pci_dev; } - /* No match found. */ - if (bus || slot) { - dev_err(dev->class_dev, - "error! no %s found at pci %02x:%02x!\n", - thisboard->name, bus, slot); - } else { - dev_err(dev->class_dev, "error! no %s found!\n", - thisboard->name); - } + dev_err(dev->class_dev, + "No supported board found! (req. bus %d, slot %d)\n", + bus, slot); return NULL; } /* @@ -285,17 +278,14 @@ static int pc263_attach(struct comedi_device *dev, struct comedi_devconfig *it) } else if (IS_ENABLED(CONFIG_COMEDI_AMPLC_PC263_PCI) && thisboard->bustype == pci_bustype) { struct pci_dev *pci_dev; - int bus, slot; ret = alloc_private(dev, sizeof(struct pc263_private)); if (ret < 0) { dev_err(dev->class_dev, "error! out of memory!\n"); return ret; } - bus = it->options[0]; - slot = it->options[1]; - pci_dev = pc263_find_pci(dev, bus, slot); - if (pci_dev == NULL) + pci_dev = pc263_find_pci_dev(dev, it); + if (!pci_dev) return -EIO; return pc263_pci_common_attach(dev, pci_dev); } else {