X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=drivers%2Fusb%2Fdwc2%2Fcore.c;h=4c0fa0b173538847e680ae13e983d6a3534311d6;hb=c636e176d8e5afe2f3b3e3f1de33ec13f1cee308;hp=fa9b26b915071ada49ee1b068ff098c09a962ff1;hpb=084165a3f8c8a88c83bdfa3941f897ae0f020211;p=cascardo%2Flinux.git diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index fa9b26b91507..4c0fa0b17353 100644 --- a/drivers/usb/dwc2/core.c +++ b/drivers/usb/dwc2/core.c @@ -463,9 +463,18 @@ static void dwc2_clear_force_mode(struct dwc2_hsotg *hsotg) */ void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg) { + bool ret; + switch (hsotg->dr_mode) { case USB_DR_MODE_HOST: - dwc2_force_mode(hsotg, true); + ret = dwc2_force_mode(hsotg, true); + /* + * NOTE: This is required for some rockchip soc based + * platforms on their host-only dwc2. + */ + if (!ret) + msleep(50); + break; case USB_DR_MODE_PERIPHERAL: dwc2_force_mode(hsotg, false);