On Tue, Jan 27, 2015 at 9:23 AM, Simon Glass <s...@chromium.org> wrote: > Use the new utility function instead of local code. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > drivers/usb/host/ehci-pci.c | 53 > +-------------------------------------------- > 1 file changed, 1 insertion(+), 52 deletions(-) > > diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c > index 991b199..b9eabc5 100644 > --- a/drivers/usb/host/ehci-pci.c > +++ b/drivers/usb/host/ehci-pci.c > @@ -34,57 +34,6 @@ static struct pci_device_id ehci_pci_ids[] = { > {0, 0} > }; > #else > -static pci_dev_t ehci_find_class(int index) > -{ > - int bus; > - int devnum; > - pci_dev_t bdf; > - uint32_t class; > - > - for (bus = 0; bus <= pci_last_busno(); bus++) { > - for (devnum = 0; devnum < PCI_MAX_PCI_DEVICES-1; devnum++) { > - pci_read_config_dword(PCI_BDF(bus, devnum, 0), > - PCI_CLASS_REVISION, &class); > - if (class >> 16 == 0xffff) > - continue; > - > - for (bdf = PCI_BDF(bus, devnum, 0); > - bdf <= PCI_BDF(bus, devnum, > - PCI_MAX_PCI_FUNCTIONS - 1); > - bdf += PCI_BDF(0, 0, 1)) { > - pci_read_config_dword(bdf, PCI_CLASS_REVISION, > - &class); > - class >>= 8; > - /* > - * Here be dragons! In case we have multiple > - * PCI EHCI controllers, this function will > - * be called multiple times as well. This > - * function will scan the PCI busses, always > - * starting from bus 0, device 0, function 0, > - * until it finds an USB controller. The USB > - * stack gives us an 'index' of a controller > - * that is currently being registered, which > - * is a number, starting from 0 and growing > - * in ascending order as controllers are > added. > - * To avoid probing the same controller in tne > - * subsequent runs of this function, we will > - * skip 'index - 1' detected controllers and > - * report the index'th controller. > - */ > - if (class != PCI_CLASS_SERIAL_USB_EHCI) > - continue; > - if (index) { > - index--; > - continue; > - } > - /* Return index'th controller. */ > - return bdf; > - } > - } > - } > - > - return -ENODEV; > -} > #endif > > /* > @@ -102,7 +51,7 @@ int ehci_hcd_init(int index, enum usb_init_type init, > #ifdef CONFIG_PCI_EHCI_DEVICE > pdev = pci_find_devices(ehci_pci_ids, CONFIG_PCI_EHCI_DEVICE); > #else > - pdev = ehci_find_class(index); > + pdev = pci_find_class(PCI_CLASS_SERIAL_USB_EHCI, index); > #endif > if (pdev < 0) { > printf("EHCI host controller not found\n"); > --
Reviewed-by: Bin Meng <bmeng...@gmail.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot