diff mbox series

[1/2] xhci: Loosen RPM as default policy to cover xHC 1.1 as well

Message ID 20230821065742.2924681-2-Basavaraj.Natikar@amd.com
State New
Headers show
Series Handle RPM for xhci-pci | expand

Commit Message

Basavaraj Natikar Aug. 21, 2023, 6:57 a.m. UTC
The USB host controller (1022:43f7) isn't going into PCI D3 by default
without anything connected. This is because the policy that was introduced
by commit a611bf473d1f ("xhci-pci: Set runtime PM as default policy on all
xHC 1.2 or later devices") only covered 1.2 or later.

The 1.1 specification also has the same requirement as the 1.2
specification for D3 support. So expand the runtime PM as default policy
to 1.1 devices as well.

Fixes: a611bf473d1f ("xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices")
Link: https://composter.com.ua/documents/xHCI_Specification_for_USB.pdf
Co-developed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
---
 drivers/usb/host/xhci-pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mathias Nyman Sept. 15, 2023, 1:20 p.m. UTC | #1
On 21.8.2023 9.57, Basavaraj Natikar wrote:
> The USB host controller (1022:43f7) isn't going into PCI D3 by default
> without anything connected. This is because the policy that was introduced
> by commit a611bf473d1f ("xhci-pci: Set runtime PM as default policy on all
> xHC 1.2 or later devices") only covered 1.2 or later.
> 
> The 1.1 specification also has the same requirement as the 1.2
> specification for D3 support. So expand the runtime PM as default policy
> to 1.1 devices as well.
> 

I'm a bit hesitant to change the default policy for this many hosts in one go.
This affects all vendors.

I see a regression risk in this.
Many xhci issues have been related to runtime pm.

We do have a list of selected Intel xHCI 1.1 host that have enabled runtime pm
by default. Same could be done for 1022:43f7

Or if you are confident all AMD xHC 1.1 hosts can have this enabled, then that
works as well:

if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version >= 0x110)
	xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;

Thanks
Mathias
diff mbox series

Patch

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index b9ae5c2a2527..c908a80ef436 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -533,7 +533,7 @@  static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 	}
 
 	/* xHC spec requires PCI devices to support D3hot and D3cold */
-	if (xhci->hci_version >= 0x120)
+	if (xhci->hci_version >= 0x110)
 		xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
 
 	if (xhci->quirks & XHCI_RESET_ON_RESUME)