From: Gregory Herrero Date: Fri, 3 Apr 2015 08:53:25 +0000 (+0200) Subject: usb: dwc2: host: sleep USB_RESUME_TIMEOUT during resume X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=42a6630a875c17b8ad129d2cc0472217107147ad;p=openwrt%2Fstaging%2Fblogic.git usb: dwc2: host: sleep USB_RESUME_TIMEOUT during resume msleep(USB_RESUME_TIMEOUT) must be done when the controller drives the resume. This is true after HPRT0_RES is written. Moreover, restore the delay after controller power is up. Signed-off-by: Gregory Herrero Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 93bd4a10ab52..fbbbac2150a5 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -1529,13 +1529,13 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq, dev_dbg(hsotg->dev, "ClearPortFeature USB_PORT_FEAT_SUSPEND\n"); writel(0, hsotg->regs + PCGCTL); - msleep(USB_RESUME_TIMEOUT); + usleep_range(20000, 40000); hprt0 = dwc2_read_hprt0(hsotg); hprt0 |= HPRT0_RES; writel(hprt0, hsotg->regs + HPRT0); hprt0 &= ~HPRT0_SUSP; - usleep_range(100000, 150000); + msleep(USB_RESUME_TIMEOUT); hprt0 &= ~HPRT0_RES; writel(hprt0, hsotg->regs + HPRT0);