Re: [PATCH 2/4] usb: host: xhci: Introduce one new 'usb3_slow_suspend' member for xhci private data

From: Baolin Wang
Date: Thu Aug 18 2016 - 08:48:52 EST


Hi Felipe,

On 18 August 2016 at 20:25, Felipe Balbi <balbi@xxxxxxxxxx> wrote:
>
> Hi,
>
> Baolin Wang <baolin.wang@xxxxxxxxxx> writes:
>> Hi Felipe,
>>
>> On 18 August 2016 at 15:18, Felipe Balbi <balbi@xxxxxxxxxx> wrote:
>>>
>>> Hi,
>>>
>>> Baolin Wang <baolin.wang@xxxxxxxxxx> writes:
>>>> Now some usb controllers (such as dwc3 controller) need 'XHCI_SLOW_SUSPEND'
>>>> quirk when suspending the xhci, thus we need to add 'usb3_slow_suspend' member
>>>> in xhci platform data to support this.
>>>>
>>>> Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
>>>> ---
>>>> drivers/usb/host/xhci-plat.c | 3 +++
>>>> include/linux/usb/xhci_pdriver.h | 3 +++
>>>> 2 files changed, 6 insertions(+)
>>>>
>>>> diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
>>>> index e2e2487..162f17c 100644
>>>> --- a/drivers/usb/host/xhci-plat.c
>>>> +++ b/drivers/usb/host/xhci-plat.c
>>>> @@ -250,6 +250,9 @@ static int xhci_plat_probe(struct platform_device *pdev)
>>>> (pdata && pdata->usb3_lpm_capable))
>>>> xhci->quirks |= XHCI_LPM_SUPPORT;
>>>>
>>>> + if (pdata && pdata->usb3_slow_suspend)
>>>> + xhci->quirks |= XHCI_SLOW_SUSPEND;
>>>
>>> I remember having a discussion about this with Paul Z and it turned out
>>> that we really didn't need SLOW_SUSPEND. Can you describe further in
>>> what situation you need this quirk?
>>
>> On my dwc3 platform, xhci suspend will be failed if we have not
>> enabled XHCI_SLOW_SUSPEND quirk.
>
> fail how? What error do you see? Do you have some traces of what's
> happening? Did you try figuring out if this is, perhaps, caused by some
> call ordering which is wrong? Perhaps disabling PHYs too early or
> something like that?

It shows the warning "WARN: xHC CMD_RUN timeout" when running
xhci_suspend(). If I enbale XHCI_SLOW_SUSPEND quirk, then it can work
well. I did not try to figure out other things, due to I think the
dwc3 need XHCI_SLOW_SUSPEND quirk. But I can re-try to figure out if
there are other issues if you still believe that dwc3 does not need
XHCI_SLOW_SUSPEND quirk. Thanks.

--
Baolin.wang
Best Regards