linux-stable/drivers/pci
Robert Hancock 99c0a26710 PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
commit b361663c5a 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: 66ff14e59e ("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 <hancockrwd@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-08-05 10:06:48 +02:00
..
dwc PCI: keystone: Fix link training retries initiation 2020-02-14 16:32:11 -05:00
endpoint PCI: endpoint: Fix for concurrent memory allocation in OB address region 2020-04-24 08:00:37 +02:00
host irqdomain/treewide: Keep firmware node unconditionally allocated 2020-07-29 07:42:52 +02:00
hotplug PCI: rpadlpar: Fix leaked device_node references in add/remove paths 2019-06-15 11:54:56 +02:00
pcie PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port 2020-06-25 15:41:54 +02:00
switch PCI/switchtec: Fix init_completion race condition with poll_wait() 2020-04-24 08:00:27 +02:00
access.c
ats.c
bus.c
ecam.c
host-bridge.c
hotplug-pci.c
htirq.c
iov.c PCI/IOV: Fix memory leak in pci_iov_add_virtfn() 2020-02-28 16:35:59 +01:00
irq.c
Kconfig
Makefile
mmap.c
msi.c PCI/MSI: Fix incorrect MSI-X masking on resume 2019-12-21 10:47:41 +01:00
of.c
pci-acpi.c
pci-driver.c PCI/PM: Always return devices to D0 when thawing 2019-12-21 10:47:40 +01:00
pci-label.c
pci-mid.c
pci-stub.c
pci-sysfs.c PCI: sysfs: Ignore lockdep for remove attribute 2019-07-31 07:28:52 +02:00
pci.c PCI: PM: Fix pci_power_up() 2019-10-29 09:17:45 +01:00
pci.h
probe.c PCI: Fix pci_register_host_bridge() device_register() error handling 2020-06-25 15:41:52 +02:00
proc.c
quirks.c PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge 2020-08-05 10:06:48 +02:00
remove.c
rom.c
search.c
setup-bus.c PCI: Don't disable bridge BARs when assigning bus resources 2020-02-14 16:32:21 -05:00
setup-irq.c
setup-res.c
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c