[PATCH v3] usb: dwc2: add bus suspend/resume for dwc2
Paul Zimmerman
Paul.Zimmerman at synopsys.com
Mon Jan 5 17:23:30 PST 2015
> From: Kever Yang [mailto:kever.yang at rock-chips.com]
> Sent: Wednesday, November 12, 2014 4:42 PM
>
> On 11/13/2014 07:22 AM, Doug Anderson wrote:
> > Kever,
> >
> > On Mon, Nov 10, 2014 at 5:09 AM, Kever Yang <kever.yang at rock-chips.com> wrote:
> >> Hcd controller needs bus_suspend/resume, dwc2 controller make
> >> root hub generate suspend/resume signal with hprt0 register
> >> when work in host mode.
> >> After the root hub enter suspend, we can make controller enter
> >> low power state with PCGCTL register.
> >>
> >> We also update the lx_state for hsotg state.
> >>
> >> This patch has tested on rk3288 with suspend/resume.
> >>
> >> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
> >> Acked-by: Paul Zimmerman <paulz at synopsys.com>
> >> ---
> >>
> >> Changes in v3:
> >> - remove CONFIG_PM macro for bus_suspend/resume
> >> - add PCGCTL operation for no device connect case
> >>
> >> Changes in v2:
> >> - update commit message
> >> - make dwc2 suspend/resume sourcecode work
> >>
> >> drivers/usb/dwc2/hcd.c | 88 +++++++++++++++++++++++++++++++++++++++++++-------
> >> 1 file changed, 77 insertions(+), 11 deletions(-)
> > I would certainly appreciate confirmation, but my inclination is to
> > NAK this change due to the fact that it regresses functionality. I
> > haven't done any serious review of it, but I've been testing it and it
> > appears to break hotplug.
> >
> > Said another way, I did this:
> >
> > 1. Without this patch, I booted with a USB stick in. It was detected.
> > I unplugged it, waited 5 seconds, and then plugged it back in. The
> > USB stick was redetcted.
> >
> > 2. With this patch, I did the same thing. The USB not redected after
> > plugging it back in.
> With this patch, the dwc2 hcd/root hub will be auto suspend after device
> on port is disconnected, and it can't detect the device connect any more,
> I think that's the problem.
>
> 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.
Kever,
This patch has made it into Linus' kernel as commit 0cf884e819e0, and
it breaks disconnect/connect on at least the Altera SOCFPGA platform.
I haven't been able to test it on any other platforms.
You need to submit a patch to either fix this, or to only enable this
feature for the Rock-chip platform. Otherwise the patch has to be
reverted.
--
Paul
More information about the Linux-rockchip
mailing list