John,

On Wed, Dec 2, 2015 at 11:15 AM, John Youn <john.y...@synopsys.com> wrote:
> The delay for force mode is only 25ms according to the databook.
>
> Signed-off-by: John Youn <johny...@synopsys.com>
> ---
>  drivers/usb/dwc2/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
> index 91d63a8..a6fddbf 100644
> --- a/drivers/usb/dwc2/core.c
> +++ b/drivers/usb/dwc2/core.c
> @@ -552,7 +552,7 @@ int dwc2_core_reset_and_force_mode(struct dwc2_hsotg 
> *hsotg)
>          * NOTE: This long sleep is _very_ important, otherwise the core will
>          * not stay in host mode after a connector ID change!
>          */
> -       usleep_range(150000, 160000);
> +       usleep_range(25000, 50000);

This seems to work for me.  At least I've done reboots and not noticed
any problems.  :-P

Personally I'd suggest tightening the range to something like (25000,
30000) or even replacing with "msleep(25)".  From past experience I've
found that usleep_range() nearly always picks the largest value you
gave it.  That's supposed to be for power savings for things you do
all the time.  For a rare thing like a reset it's just a waste of
time.

In any case, up to you.  What yo have is certainly better than what was there.

This is tested on some rk3288-based devices with a 3.14 kernel.

Reviewed-by: Douglas Anderson <diand...@chromium.org>
Tested-by: Douglas Anderson <diand...@chromium.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to