Skip to content
Snippets Groups Projects
Commit 3ed9eb93 authored by Stefan Roese's avatar Stefan Roese Committed by Marek Vasut
Browse files

usb: Don't reset the USB hub a 2nd time


Debugging has shown, that all USB hubs are being reset twice while
USB scanning. This introduces additional delays and makes USB scanning
even more slow. Testing has shown that this 2nd USB hub reset doesn't
seem to be necessary.

This patch now removes this 2nd USB hub reset. Resulting in faster USB
scan time. Here the current numbers:

Without this patch:
=> time usb start
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 24.003 seconds

With this patch:
=> time usb start
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 20.392 seconds

So ~3.6 seconds of USB scanning time reduction.

Signed-off-by: default avatarStefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: default avatarHans de Goede <hdegoede@redhat.com>
Tested-by: default avatarStephen Warren <swarren@nvidia.com>
Cc: Marek Vasut <marex@denx.de>
parent 2ef117fe
No related branches found
No related tags found
No related merge requests found
......@@ -919,19 +919,8 @@ __weak int usb_alloc_device(struct usb_device *udev)
static int usb_hub_port_reset(struct usb_device *dev, struct usb_device *hub)
{
if (hub) {
unsigned short portstatus;
int err;
/* reset the port for the second time */
err = legacy_hub_port_reset(hub, dev->portnr - 1, &portstatus);
if (err < 0) {
printf("\n Couldn't reset port %i\n", dev->portnr);
return err;
}
} else {
if (!hub)
usb_reset_root_port(dev);
}
return 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment