usb: Remove 200 ms delay in usb_hub_port_connect_change()
authorStefan Roese <[email protected]>
Tue, 15 Mar 2016 12:59:13 +0000 (13:59 +0100)
committerMarek Vasut <[email protected]>
Sun, 20 Mar 2016 17:00:44 +0000 (18:00 +0100)
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.003 seconds

So ~4.5 seconds of USB scanning time reduction.

Signed-off-by: Stefan Roese <[email protected]>
Cc: Simon Glass <[email protected]>
Acked-by: Hans de Goede <[email protected]>
Tested-by: Stephen Warren <[email protected]>
Cc: Marek Vasut <[email protected]>
common/usb_hub.c

index 2089e20fd5032152eef6672e016f1dba4211cc5d..d621f50fc6bdae48185906e35a5abc9c80183a49 100644 (file)
@@ -275,7 +275,6 @@ int usb_hub_port_connect_change(struct usb_device *dev, int port)
                if (!(portstatus & USB_PORT_STAT_CONNECTION))
                        return -ENOTCONN;
        }
-       mdelay(200);
 
        /* Reset the port */
        ret = legacy_hub_port_reset(dev, port, &portstatus);
@@ -285,8 +284,6 @@ int usb_hub_port_connect_change(struct usb_device *dev, int port)
                return ret;
        }
 
-       mdelay(200);
-
        switch (portstatus & USB_PORT_STAT_SPEED_MASK) {
        case USB_PORT_STAT_SUPER_SPEED:
                speed = USB_SPEED_SUPER;