John, On Wed, Dec 2, 2015 at 11:15 AM, John Youn <John.Youn@xxxxxxxxxxxx> wrote: > The delay for force mode is only 25ms according to the databook. > > Signed-off-by: John Youn <johnyoun@xxxxxxxxxxxx> > --- > 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 <dianders@xxxxxxxxxxxx> Tested-by: Douglas Anderson <dianders@xxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html