Message ID | 1422321801-6743-6-git-send-email-sjg@chromium.org |
---|---|
State | Superseded |
Delegated to: | Simon Glass |
Headers | show |
On Tue, Jan 27, 2015 at 9:23 AM, Simon Glass <sjg@chromium.org> wrote: > Use the new utility function instead of local code. > > Signed-off-by: Simon Glass <sjg@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.cn@gmail.com>
On Tuesday, January 27, 2015 at 02:23:03 AM, Simon Glass wrote: > Use the new utility function instead of local code. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > drivers/usb/host/ehci-pci.c | 53 > +-------------------------------------------- 1 file changed, 1 > insertion(+), 52 deletions(-) Nice! Acked-by: Marek Vasut <marex@denx.de> Do you want to pick it through the x86 tree or shall I pick it through USB ? Best regards, Marek Vasut
Hi Marek, On 27 January 2015 at 10:50, Marek Vasut <marex@denx.de> wrote: > On Tuesday, January 27, 2015 at 02:23:03 AM, Simon Glass wrote: >> Use the new utility function instead of local code. >> >> Signed-off-by: Simon Glass <sjg@chromium.org> >> --- >> >> drivers/usb/host/ehci-pci.c | 53 >> +-------------------------------------------- 1 file changed, 1 >> insertion(+), 52 deletions(-) > > Nice! > > Acked-by: Marek Vasut <marex@denx.de> > > Do you want to pick it through the x86 tree or shall I pick it through USB ? > I think x86 is better since it is part of a series. Regards, Simon
On Tuesday, January 27, 2015 at 09:53:01 PM, Simon Glass wrote: > Hi Marek, Hi Simon, > On 27 January 2015 at 10:50, Marek Vasut <marex@denx.de> wrote: > > On Tuesday, January 27, 2015 at 02:23:03 AM, Simon Glass wrote: > >> Use the new utility function instead of local code. > >> > >> Signed-off-by: Simon Glass <sjg@chromium.org> > >> --- > >> > >> drivers/usb/host/ehci-pci.c | 53 > >> > >> +-------------------------------------------- 1 file changed, 1 > >> insertion(+), 52 deletions(-) > > > > Nice! > > > > Acked-by: Marek Vasut <marex@denx.de> > > > > Do you want to pick it through the x86 tree or shall I pick it through > > USB ? > > I think x86 is better since it is part of a series. I agree, thanks! Best regards, Marek Vasut
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");
Use the new utility function instead of local code. Signed-off-by: Simon Glass <sjg@chromium.org> --- drivers/usb/host/ehci-pci.c | 53 +-------------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-)