This patch removes 2 mdelay(200) calls from usb_hub_port_connect_change(). These delays don't seem to be necessary. At least not in my tests. Here the number for a custom x86 Bay Trail board (not in mainline yet) with a quite large and complex USB hub infrastructure.
Without this patch: starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 9 USB Device(s) found time: 28.415 seconds With this patch: starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 9 USB Device(s) found time: 24.811 seconds So ~3.5 seconds of USB scanning time reduction. These mdelay calls are removed if CONFIG_USB_FAST_SCAN is defined. They are not removed per default yet. It would be good to test with this option enabled on many other boards. And once we have a good testing base we can decide to remove these delays completely, including this macro. Signed-off-by: Stefan Roese <[email protected]> Cc: Simon Glass <[email protected]> Cc: Hans de Goede <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Marek Vasut <[email protected]> --- common/usb_hub.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common/usb_hub.c b/common/usb_hub.c index 10fdd3c..660f4f4 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -275,7 +275,9 @@ int usb_hub_port_connect_change(struct usb_device *dev, int port) if (!(portstatus & USB_PORT_STAT_CONNECTION)) return -ENOTCONN; } +#if !defined(CONFIG_USB_FAST_SCAN) mdelay(200); +#endif /* Reset the port */ ret = legacy_hub_port_reset(dev, port, &portstatus); @@ -285,7 +287,9 @@ int usb_hub_port_connect_change(struct usb_device *dev, int port) return ret; } +#if !defined(CONFIG_USB_FAST_SCAN) mdelay(200); +#endif switch (portstatus & USB_PORT_STAT_SPEED_MASK) { case USB_PORT_STAT_SUPER_SPEED: -- 2.7.2 _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

