summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2013-05-31 18:34:52 -0700
committerMarek Szyprowski <m.szyprowski@samsung.com>2014-03-04 08:38:53 +0100
commitbf3e9832241d93a60d04fa9e34f8a6604373eddd (patch)
tree278da257e4abcb2ab32e2b4d2d7ac0c6ef3c8405
parent003e73e7a01d03ede8801cd8fa1ef91bb152dd67 (diff)
downloadlinux-3.10-bf3e9832241d93a60d04fa9e34f8a6604373eddd.tar.gz
linux-3.10-bf3e9832241d93a60d04fa9e34f8a6604373eddd.tar.bz2
linux-3.10-bf3e9832241d93a60d04fa9e34f8a6604373eddd.zip
usb: misc: usb3503: Remove 100ms sleep on reset, conform to data sheet
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> [mszyprow: mainline commit 06a962fa7f9bf068eb1238d7aa20453b9e11a9fd] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Change-Id: I06a962fa7f9bf068eb1238d7aa20453b9e11a9fd
-rw-r--r--drivers/usb/misc/usb3503.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/misc/usb3503.c b/drivers/usb/misc/usb3503.c
index a56299dbfaf..c3578393dde 100644
--- a/drivers/usb/misc/usb3503.c
+++ b/drivers/usb/misc/usb3503.c
@@ -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;
}