Re: [PATCH] usb: musb: fix enumeration after resume

From: Andreas Kemnade
Date: Tue Feb 06 2018 - 14:10:15 EST


Hi,

On Tue, 6 Feb 2018 10:47:25 -0800
Tony Lindgren <tony@xxxxxxxxxxx> wrote:

> * Andreas Kemnade <andreas@xxxxxxxxxxxx> [180127 08:34]:
> > On dm3730 there are enumeration problems after resume.
> > Investigation led to the cause that the MUSB_POWER_SOFTCONN
> > bit is not set. If it was set before suspend (because it
> > was enabled via musb_pullup()), it is set in
> > musb_restore_context() so the pullup is enabled. But then
> > musb_start() is called which overwrites MUSB_POWER and
> > therefore disables MUSB_POWER_SOFTCONN, so no pullup is
> > enabled and the device is not enumerated.
>
> I just gave this patch a quick try and things seem to behave
> for me from PM point of view:
>
> Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
>
> Unrelated to this patch, I also noticed that we now somehow
> higher idle power consumption initially when musb modules are
> loaded. It used to idle after that but now to get things to
> idle I had to plug and unplug a USB device once to the musb
> port.
>
Hmm, I have seen this effect with some earlier kernels but not with
4.15. My observation is that current consumption went down again after
a modprobe g_ether and ifconfig usb0 up

I was loading modules piece by piece and waited 10s after each and then
measured.

Regards,
Andreas

Attachment: pgpqpH7TLSolb.pgp
Description: OpenPGP digital signature