[PATCH v3] usb: dwc2: add bus suspend/resume for dwc2

Paul Zimmerman Paul.Zimmerman at synopsys.com
Fri Nov 14 12:17:16 PST 2014

> From: jwerner at google.com [mailto:jwerner at google.com] On Behalf Of Julius Werner
> Sent: Thursday, November 13, 2014 8:50 PM
> > I will figure out how to make dwc2 detect the device connect after auto
> > suspend,
> > or disable the auto suspend feature for the dwc2 hcd.
> I think auto-suspend of the root hub device (which is what calls
> bus_suspend, but is not the host controller device itself) is expected
> to always happen and not really meant to be disabled. I'm surprised
> that the controller would fail to come back up, though. Does removing
> the PCGCTL part make it work? That's the only thing I can think of
> (but then again the function should immediately return if the port is
> not in L0, so if there is nothing plugged in the suspend shouldn't
> really do anything).

Hi guys,

I don't have any experience with suspend/resume on the dwc2 controller
I'm afraid. One suggestion would be to look at our Synopsys vendor
driver to see how it is handled there.

That driver is part of the Raspberry Pi upstream kernel, which you
can find at https://github.com/raspberrypi/linux. The driver is
under drivers/usb/host/dwc_otg.

In particular, in dwc_otg_cil_intr.c there is a function named
dwc_otg_handle_wakeup_detected_intr() which might be of interest.
Unfortunately, that driver code is rather convoluted, so it may be
difficult to figure out exactly what the driver is doing.


More information about the Linux-rockchip mailing list