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

Kever Yang kever.yang at rock-chips.com
Wed Nov 12 16:42:06 PST 2014


Doug,

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




More information about the Linux-rockchip mailing list