Re: [PATCH] usb: dwc3: Support the dwc3 host suspend/resume

From: Baolin Wang
Date: Mon Jul 24 2017 - 05:15:31 EST


Hi Manu,

On 24 July 2017 at 16:42, Manu Gautam <mgautam@xxxxxxxxxxxxxx> 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?

--
Baolin.wang
Best Regards