From e15c2b0b6587b05d68ea24f66f09b29815fc771b Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 1 Aug 2020 12:37:18 +0200 Subject: [PATCH] 5.4-stable patches added patches: pci-aspm-disable-aspm-on-asmedia-asm1083-1085-pcie-to-pci-bridge.patch --- ...edia-asm1083-1085-pcie-to-pci-bridge.patch | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 queue-5.4/pci-aspm-disable-aspm-on-asmedia-asm1083-1085-pcie-to-pci-bridge.patch diff --git a/queue-5.4/pci-aspm-disable-aspm-on-asmedia-asm1083-1085-pcie-to-pci-bridge.patch b/queue-5.4/pci-aspm-disable-aspm-on-asmedia-asm1083-1085-pcie-to-pci-bridge.patch new file mode 100644 index 00000000000..45bd270871d --- /dev/null +++ b/queue-5.4/pci-aspm-disable-aspm-on-asmedia-asm1083-1085-pcie-to-pci-bridge.patch @@ -0,0 +1,68 @@ +From b361663c5a40c8bc758b7f7f2239f7a192180e7c Mon Sep 17 00:00:00 2001 +From: Robert Hancock +Date: Tue, 21 Jul 2020 20:18:03 -0600 +Subject: PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge + +From: Robert Hancock + +commit b361663c5a40c8bc758b7f7f2239f7a192180e7c upstream. + +Recently ASPM handling was changed to allow ASPM on PCIe-to-PCI/PCI-X +bridges. Unfortunately the ASMedia ASM1083/1085 PCIe to PCI bridge device +doesn't seem to function properly with ASPM enabled. On an Asus PRIME +H270-PRO motherboard, it causes errors like these: + + pcieport 0000:00:1c.0: AER: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID) + pcieport 0000:00:1c.0: AER: device [8086:a292] error status/mask=00003000/00002000 + pcieport 0000:00:1c.0: AER: [12] Timeout + pcieport 0000:00:1c.0: AER: Corrected error received: 0000:00:1c.0 + pcieport 0000:00:1c.0: AER: can't find device of ID00e0 + +In addition to flooding the kernel log, this also causes the machine to +wake up immediately after suspend is initiated. + +The device advertises ASPM L0s and L1 support in the Link Capabilities +register, but the ASMedia web page for ASM1083 [1] claims "No PCIe ASPM +support". + +Windows 10 (build 2004) enables L0s, but it also logs correctable PCIe +errors. + +Add a quirk to disable ASPM for this device. + +[1] https://www.asmedia.com.tw/eng/e_show_products.php?cate_index=169&item=114 + +[bhelgaas: commit log] +Fixes: 66ff14e59e8a ("PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges") +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=208667 +Link: https://lore.kernel.org/r/20200722021803.17958-1-hancockrwd@gmail.com +Signed-off-by: Robert Hancock +Signed-off-by: Bjorn Helgaas +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/quirks.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -2330,6 +2330,19 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f4, quirk_disable_aspm_l0s); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1508, quirk_disable_aspm_l0s); + ++static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev) ++{ ++ pci_info(dev, "Disabling ASPM L0s/L1\n"); ++ pci_disable_link_state(dev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1); ++} ++ ++/* ++ * ASM1083/1085 PCIe-PCI bridge devices cause AER timeout errors on the ++ * upstream PCIe root port when ASPM is enabled. At least L0s mode is affected; ++ * disable both L0s and L1 for now to be safe. ++ */ ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1); ++ + /* + * Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain + * Link bit cleared after starting the link retrain process to allow this -- 2.47.3