[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMz4kuLkG_fGybKWGqKN3C1qsoDviWAUU-e8ZMk02J3ZqEJNqQ@mail.gmail.com>
Date: Thu, 18 Aug 2016 20:47:38 +0800
From: Baolin Wang <baolin.wang@...aro.org>
To: Felipe Balbi <balbi@...nel.org>
Cc: Greg KH <gregkh@...uxfoundation.org>, mathias.nyman@...el.com,
USB <linux-usb@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Mark Brown <broonie@...nel.org>
Subject: Re: [PATCH 2/4] usb: host: xhci: Introduce one new
'usb3_slow_suspend' member for xhci private data
Hi Felipe,
On 18 August 2016 at 20:25, Felipe Balbi <balbi@...nel.org> wrote:
>
> Hi,
>
> Baolin Wang <baolin.wang@...aro.org> writes:
>> Hi Felipe,
>>
>> On 18 August 2016 at 15:18, Felipe Balbi <balbi@...nel.org> wrote:
>>>
>>> Hi,
>>>
>>> Baolin Wang <baolin.wang@...aro.org> 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@...aro.org>
>>>> ---
>>>> 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
Powered by blists - more mailing lists