On 2/1/2016 6:53 PM, Caesar Wang wrote: > John, > > I will suggest the msleep(25) delay should put in > 'dwc2_force_dr_mode()' instead of the 'dwc2_clear_force_mode()' > Hi Caesar, Are you saying that just msleep(25) in that function like this solves your issue? diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index 39a0fa8..e8a9688 100644 --- a/drivers/usb/dwc2/core.c +++ b/drivers/usb/dwc2/core.c @@ -625,6 +625,8 @@ void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg) __func__, hsotg->dr_mode); break; } + + msleep(25); } Although that is still not ideal, it's better than the alternative. Regards, John