From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: "Liang, Prike" <Prike.Liang@amd.com>, Greg KH <greg@kroah.com>
Cc: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
"mathias.nyman@intel.com" <mathias.nyman@intel.com>
Subject: Re: [PATCH] usb: pci-quirks: add XHCI_COMP_MODE_QUIRK for disabling amd xhci D3cold
Date: Tue, 2 Feb 2021 15:48:27 +0200 [thread overview]
Message-ID: <39a54be4-dc68-8385-bb65-9c7619e16cf6@linux.intel.com> (raw)
In-Reply-To: <BYAPR12MB3238626A32C6E62DA008B72CFBB69@BYAPR12MB3238.namprd12.prod.outlook.com>
On 1.2.2021 16.08, Liang, Prike wrote:
> [AMD Official Use Only - Internal Distribution Only]
>
>>
>> On Wed, Jan 27, 2021 at 12:33:09PM +0100, Greg KH wrote:
>>> On Tue, Jan 19, 2021 at 09:48:44AM +0800, Prike Liang wrote:
>>>> During xhci suspend some AMD USB host will lose port status change
>>>> events and need to have the registers polled during D3, so now just avoid
>> D3cold.
>>>>
>>>> Signed-off-by: Prike Liang <Prike.Liang@amd.com>
>>>> ---
>>>> drivers/usb/host/xhci-pci.c | 5 +++++
>>>> 1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/drivers/usb/host/xhci-pci.c
>>>> b/drivers/usb/host/xhci-pci.c index 3feaafe..bff817a 100644
>>>> --- a/drivers/usb/host/xhci-pci.c
>>>> +++ b/drivers/usb/host/xhci-pci.c
>>>> @@ -170,6 +170,11 @@ static void xhci_pci_quirks(struct device *dev,
>> struct xhci_hcd *xhci)
>>>> (pdev->device == PCI_DEVICE_ID_AMD_PROMONTORYA_1)))
>>>> xhci->quirks |= XHCI_U2_DISABLE_WAKE;
>>>>
>>>> +if (pdev->vendor == PCI_VENDOR_ID_AMD &&
>>>> +pdev->device == 0x1639) {
>>>> +xhci->quirks |= XHCI_COMP_MODE_QUIRK;
>>>> +}
>>>
>>> Why not add this check to the
>>> xhci_compliance_mode_recovery_timer_quirk_check() function instead,
>>> where all other systems that need this quirk are tested for?
>>
>> Ah, you don't have a pci device at that point in time. But, why aren't you
>> making the same calls that the caller of that function does when setting this
>> quirk here? Isn't that also required?
>>
> [Prike] Thanks comment. This XHCI host port status lost issue was seen on the s2idle wake up period and poll the CNR bit failed in xhci_resume() that eventually result in the XHCI device resume failed. However, this issue may not totally caused by the entry of XHCI compliance mode and seems only partially enable the COMP flag with disable XHCI D3cold can work around this failed case. Regards to this issue maybe we needn't the COMP quirk and only need disable the D3cold for some specific XHCI device during processing xhci_pci_suspend().
The XHCI_COMP_MODE_QUIRK is for cases where ports suddenly go to compliance mode.
For those we start a timer that polls each port every 2 seconds and checks for
compliance mode, and recovers from it. Timer is not running while xhci is suspended.
Can you see any port ending up in compliance mode?
The 'Controller Not Ready' (CNR) bit not being cleared by host in resume
sounds like the actual problem.
-Mathias
next prev parent reply other threads:[~2021-02-02 13:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-19 1:48 [PATCH] usb: pci-quirks: add XHCI_COMP_MODE_QUIRK for disabling amd xhci D3cold Prike Liang
2021-01-26 12:30 ` Liang, Prike
2021-01-27 11:33 ` Greg KH
2021-01-27 11:44 ` Greg KH
2021-02-01 14:08 ` Liang, Prike
2021-02-01 14:12 ` Greg KH
2021-02-02 13:48 ` Mathias Nyman [this message]
2021-02-03 7:40 ` Liang, Prike
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=39a54be4-dc68-8385-bb65-9c7619e16cf6@linux.intel.com \
--to=mathias.nyman@linux.intel.com \
--cc=Prike.Liang@amd.com \
--cc=greg@kroah.com \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.