Re: dwc3 gadget breaks on system suspend/resume

Felipe Balbi
2017-01-27T15:03:30Z

[-- Attachment #1: Type: text/plain, Size: 2659 bytes --]

Hi,

Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org> 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-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
>> 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-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
>>
>> 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?

--
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]