| From 660a92a59b9e831a0407e41ff62875656d30006e Mon Sep 17 00:00:00 2001 |
| From: Nehal Bakulchandra Shah <Nehal-Bakulchandra.shah@amd.com> |
| Date: Thu, 14 Oct 2021 15:12:00 +0300 |
| Subject: usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform |
| |
| From: Nehal Bakulchandra Shah <Nehal-Bakulchandra.shah@amd.com> |
| |
| commit 660a92a59b9e831a0407e41ff62875656d30006e upstream. |
| |
| AMD's Yellow Carp platform supports runtime power management for |
| XHCI Controllers, so enable the same by default for all XHCI Controllers. |
| |
| [ regrouped and aligned the PCI_DEVICE_ID definitions -Mathias] |
| |
| Cc: stable <stable@vger.kernel.org> |
| Reviewed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> |
| Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> |
| Reviewed-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> |
| Signed-off-by: Nehal Bakulchandra Shah <Nehal-Bakulchandra.shah@amd.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Link: https://lore.kernel.org/r/20211014121200.75433-2-mathias.nyman@linux.intel.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/host/xhci-pci.c | 16 ++++++++++++++++ |
| 1 file changed, 16 insertions(+) |
| |
| --- a/drivers/usb/host/xhci-pci.c |
| +++ b/drivers/usb/host/xhci-pci.c |
| @@ -59,6 +59,13 @@ |
| #define PCI_DEVICE_ID_AMD_PROMONTORYA_3 0x43ba |
| #define PCI_DEVICE_ID_AMD_PROMONTORYA_2 0x43bb |
| #define PCI_DEVICE_ID_AMD_PROMONTORYA_1 0x43bc |
| +#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_1 0x161a |
| +#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_2 0x161b |
| +#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_3 0x161d |
| +#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_4 0x161e |
| +#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_5 0x15d6 |
| +#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_6 0x15d7 |
| + |
| #define PCI_DEVICE_ID_ASMEDIA_1042_XHCI 0x1042 |
| #define PCI_DEVICE_ID_ASMEDIA_1042A_XHCI 0x1142 |
| #define PCI_DEVICE_ID_ASMEDIA_1142_XHCI 0x1242 |
| @@ -290,6 +297,15 @@ static void xhci_pci_quirks(struct devic |
| pdev->device == PCI_DEVICE_ID_AMD_PROMONTORYA_4)) |
| xhci->quirks |= XHCI_NO_SOFT_RETRY; |
| |
| + if (pdev->vendor == PCI_VENDOR_ID_AMD && |
| + (pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_1 || |
| + pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_2 || |
| + pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_3 || |
| + pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_4 || |
| + pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_5 || |
| + pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_6)) |
| + xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; |
| + |
| if (xhci->quirks & XHCI_RESET_ON_RESUME) |
| xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, |
| "QUIRK: Resetting on resume"); |