Hi Manu,
On 24 July 2017 at 16:42, Manu Gautam mgautam@codeaurora.org wrote:
Hi Baolin,
On 7/24/2017 11:26 AM, Baolin Wang wrote:
Other than what I pushed in my patch - ("usb: dwc3: Don't reinitialize core during host bus-suspend/resume") Just performing pm_request_resume or handling same in dwc3 glue driver should be sufficient.
Yes.
Also, what is trigger for runtime_resume for your platform?
In our platform glue layer, we have extcon events to notify there are devices connected, then gule layer will resume dwc3 device.
IMO you can just perform resume of &dwc->xhci->dev instead of resuming dwc3. Since, dwc3 is parent of xhci that will trigger resume of dwc3 as well.
I am not sure this is good enough but it seems can solve some problems, then we do not need resume/suspend host in dwc3 core.
In that case can we proceed with this patch: [1] https://www.spinics.net/lists/linux-usb/msg158682.html
For your platform you can pick this patch and resume dwc->xhci->dev resume from your glue driver. Do you have any other concerns?
The same concern I explained in your patch. If we power off the controller when suspend, how can controller work well as host if we do not issue dwc3_core_init()? Suppose below cases: device attached: resume glue layer (power on dwc3 controller) ---> resume dwc3 device ---> resume xHCI device no device attached: suspend xHCI device ---> suspend dwc3 device ---> suspend glue layer (we can power off the dwc3 controller now)
Though now there are no upstreamed glue drivers will power off dwc3 controller, should we consider this situation?