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