Hi Baolin Wang <baolin.wang@xxxxxxxxxx> writes: > Hi Felipe, > > On 13 May 2016 at 20:46, Felipe Balbi <balbi@xxxxxxxxxx> wrote: >> >> Hi, >> >> Baolin Wang <baolin.wang@xxxxxxxxxx> writes: >>>>>> why does it need restart? Why is dwc3 powered off? Who powers it off? >>>>> >>>>> Because when the dwc3 Vbus is off (no cable pluging in now), >>>>> especially for some mobile device, the system need to power off the >>>>> dwc3 to save power in this situation. >>>> >>>> but dwc3 doesn't do this by itself, so who's doing it? >>> >>> Yes, the dwc3 clock is controlled by the Soc system, so the Soc system >>> can disable the dwc3 clock when there is no cable plugging in. >> >> understood. >> >>>>>> This looks like a *really* bad power management implementation. Do you >>>>>> have hibernation enabled? Do you have Clock gating enabled? Which dwc3 >>>>>> version are you using? How was it configured? >>>>> >>>>> This is not hibernation, we want to power off the dwc3 to save power >>>>> when no cable plugging in. Yes, we have clock gating, at this >>>>> situation we will disable the clock and shutdown the phy to save >>>>> power. For mobile device, most time no cable plugging in, so we need >>>>> to think about the power consuming. How do you think this requirement? >>>> >>>> Well, seems like you're missing *proper* runtime PM. I've been meaning >>>> to work on it for weeks, but I still have a few other things to do >>>> before I get to that. In any case, we don't need to do what you did >>>> here. There are better ways. >>> >>> Make sense. >> >> cool, if you wanna work on it, let me know and I can give some details >> of what I have in mind. > > Could you explain details to me, and I wanna continue to optimize the > power management things. Thanks. I have it half-way done. Have a look at my dwc3-fix-suspend branch on k.org. I haven't sent because I'm not getting a PME event. Can you test on your end and let me know what happens? Note that if cable is disconnected, we will drop RUN/STOP bit. On runtime_resume, we will restart the controller from scratch (skipping memory allocations, of course) -- balbi
Attachment:
signature.asc
Description: PGP signature