Skip to content

Commit

Permalink
usb: dwc2: host: sleep USB_RESUME_TIMEOUT during resume
Browse files Browse the repository at this point in the history
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 <gregory.herrero@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Gregory Herrero authored and Greg Kroah-Hartman committed Apr 10, 2015
1 parent b9cd825 commit 42a6630
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/usb/dwc2/hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 42a6630

Please sign in to comment.