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

From: Felipe Balbi
Date: Thu Aug 18 2016 - 09:45:50 EST



Hi Baolin,

Baolin Wang <baolin.wang@xxxxxxxxxx> writes:
>>>>> 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.

When I discussed this with Paul Z, he told me there was no known
DWC3 SoC that really needed SLOW_SUSPEND, so it's likely to be a bug in
either xhci or dwc3.

Please try to track this down. I would start looking at ordering with
PHY poweroff or something like that.

--
balbi

Attachment: signature.asc
Description: PGP signature