Re: dwc3 gadget breaks on system suspend/resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 27/01/17 17:03, Felipe Balbi wrote:
> 
> Hi,
> 
> Roger Quadros <rogerq@xxxxxx> writes:
>>>>>>> We have system suspend resume working on dra7-evm in v4.10-rc but
>>>>>>> dwc3 gadget breaks after system suspend resume.
>>>>>>>
>>>>>>> Any hints how to fix it? Full backtrace below.
>>>>>>
>>>>>> from a quick look. END_TRANSFER is timing out, most likely. Tracepoints
>>>>>> should give better hints.
>>>>>>
>>>>>> We might have a bug in dwc3_gadget_suspend(). No idea what's really
>>>>>> going on.
>>>>>>
>>>>>>> Another message that looks worry-some is
>>>>>>> "[   61.495313] omap-dwc3 48880000.omap_dwc3_1: runtime PM trying to suspend device but active child"
>>>>>>
>>>>>> did you implement runtime PM on dwc3-omap.c? Look at dwc3-pci.c for reference.
>>>>>>
>>>>>>> If I unload gadget, then suspend/resume system then load gadget everything works fine.
>>>>>>
>>>>>> right, dwc3 UDC will already have been toredown. Unfortunately I can't
>>>>>> spend a lot of time on this, so you're gonna have to try to fix it and
>>>>>> provide a patch :-s Quite busy looking at some f_fs weirdness.
>>>>>
>>>>> No problem. I'll debug this issue.
>>>>
>>>> Bisected to bad commit 4eb3d981e7344ded9e5a8725ed934dd8f8056daf "usb: dwc3: core: simplify suspend/resume operations".
>>>
>>> $ git show 4eb3d981e7344ded9e5a8725ed934dd8f8056daf
>>> fatal: bad object 4eb3d981e7344ded9e5a8725ed934dd8f8056daf
>>>
>>> That commit to me is:
>>>
>>> commit 51f5d49ad6f011ee380b866ea617fd90584189a2
>>> Author: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
>>> Date:   Mon May 16 10:52:58 2016 +0300
>>>
>>>     usb: dwc3: core: simplify suspend/resume operations
>>>     
>>>     now that we have re-factored dwc3_core_init() and
>>>     dwc3_core_exit() we can use them for suspend/resume
>>>     operations.
>>>     
>>>     This will help us avoid some common mistakes when
>>>     patching code when we have duplicated pieces of code
>>>     doing the same thing.
>>>     
>>>     Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
>>>
>>> Can you please try actual mainline and not some tree where you
>>> cherry-picked patches on top? ;-)
>>>
>> Sorry about the wrong commit ID.
> 
> np
> 
>> I reset my tree to 51f5d49ad6f011ee380b866ea617fd90584189a2 and can reproduce the issue.
> 
> okay
> 
>> The previous commit c499ff71ff2a281366c6ec7a904c547d806cbcd1 is fine.
> 
> okay. Then let's try to figure out what's going on. A diff of regdump
> before and after suspend/resume might start to give some clue about
> what's going on. DWC3 tracepoints should help too. Care to get those?
> BTW, is this dwc3 as host or peripheral?
> 

It is for peripheral mode.

regdump pre-suspend
http://pastebin.ubuntu.com/23875213/

regdump post-resume
http://pastebin.ubuntu.com/23875211/

tracing during suspend/resume. NOTE: gadget zero had enumerated successfully
before I enabled the tracing.
http://pastebin.ubuntu.com/23875233/

cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux