Re: [U-Boot] [PATCH 05/23] usb: pci: Use pci_find_class() to find the device
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 == 0x) - 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
Re: [U-Boot] [PATCH 05/23] usb: pci: Use pci_find_class() to find the device
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 ma...@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 s...@chromium.org --- drivers/usb/host/ehci-pci.c | 53 + 1 file changed, 1 insertion(+), 52 deletions(-) Nice! Acked-by: Marek Vasut ma...@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 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 05/23] usb: pci: Use pci_find_class() to find the device
Hi Marek, On 27 January 2015 at 10:50, Marek Vasut ma...@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 s...@chromium.org --- drivers/usb/host/ehci-pci.c | 53 + 1 file changed, 1 insertion(+), 52 deletions(-) Nice! Acked-by: Marek Vasut ma...@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 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 05/23] usb: pci: Use pci_find_class() to find the device
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 s...@chromium.org --- drivers/usb/host/ehci-pci.c | 53 + 1 file changed, 1 insertion(+), 52 deletions(-) Nice! Acked-by: Marek Vasut ma...@denx.de Do you want to pick it through the x86 tree or shall I pick it through USB ? Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 05/23] usb: pci: Use pci_find_class() to find the device
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 == 0x) - 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); -- 2.2.0.rc0.207.ga3a616c ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot