usb: misc: usb3503: Remove 100ms sleep on reset, conform to data sheet
authorJulius Werner <jwerner@chromium.org>
Sat, 1 Jun 2013 01:34:52 +0000 (18:34 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Jun 2013 18:01:09 +0000 (11:01 -0700)
The usb3503 driver sleeps a flat 100ms when resetting the chip, with a
comment about waiting for the reference clock. This seems to be a
board-specific detail that should not hold up boot across all platforms.
This patch reduces the sleep to the 4ms initialization delay that the
chip itself actually requires (as per its data sheet). If certain boards
require more time to set up the reference clock, they should change this
through local patches or add a proper, configurable synchronization
mechanism.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/usb3503.c

index a56299dbfaf4bf3ef18b4d4629bf81982f8e1e6b..c3578393ddeffc427906f362daa8d0ca39576e10 100644 (file)
@@ -105,11 +105,9 @@ static int usb3503_reset(int gpio_reset, int state)
        if (gpio_is_valid(gpio_reset))
                gpio_set_value(gpio_reset, state);
 
-       /* Wait RefClk when RESET_N is released, otherwise Hub will
-        * not transition to Hub Communication Stage.
-        */
+       /* Wait T_HUBINIT == 4ms for hub logic to stabilize */
        if (state)
-               msleep(100);
+               usleep_range(4000, 10000);
 
        return 0;
 }