linux_dsm_epyc7002/drivers/pci/pcie
Bjorn Helgaas 94ac327e04 PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
Every Port that supports the L1.2 substate advertises its Port
Common_Mode_Restore_Time, i.e., the time the Port requires to re-establish
common mode when exiting L1.2 (see PCIe r3.1, sec 7.33.2).

Per sec 5.5.3.3.1, when exiting L1.2, the Downstream Port (the device at
the upstream end of the link) must send TS1 training sequences for at least
T(COMMONMODE) after it detects electrical idle exit on the Link.  We want
this to be long enough for both ends of the Link, so we should set it to
the maximum of the Port Common_Mode_Restore_Time for the upstream and
downstream components on the Link.

Previously we only looked at the Port Common_Mode_Restore_Time of the
upstream device, so if the downstream device required more time, we didn't
program the upstream device's T(COMMONMODE) correctly.

Fixes: f1f0366dd6 ("PCI/ASPM: Calculate and save the L1.2 timing parameters")
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Vidya Sagar <vidyas@nvidia.com>
Acked-by: Rajat Jain <rajatja@google.com>
CC: stable@vger.kernel.org	# v4.11+
2017-11-13 15:05:24 -06:00
..
aer Merge branch 'pci/trivial' into next 2017-09-07 13:24:20 -05:00
aspm.c PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time 2017-11-13 15:05:24 -06:00
Kconfig PCI/ASPM: Add support for L1 substates 2017-02-14 17:43:51 -06:00
Makefile PCI: Add Precision Time Measurement (PTM) support 2016-08-15 13:44:08 -05:00
pcie-dpc.c PCI/DPC: Add local struct device pointers 2017-08-24 11:30:02 -05:00
pme.c PCI / PM: Fix native PME handling during system suspend/resume 2017-07-13 01:50:07 +02:00
portdrv_acpi.c Merge branches 'pci/dpc', 'pci/resource' and 'pci/thunderbolt' into next 2016-05-03 11:49:21 -05:00
portdrv_bus.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
portdrv_core.c PCI/portdrv: Allocate MSI/MSI-X vector for Downstream Port Containment 2017-06-16 19:19:28 -05:00
portdrv_pci.c dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
portdrv.h PCI/portdrv: Support multiple interrupts for MSI as well as MSI-X 2017-06-16 18:04:13 -05:00
ptm.c PCI: Add PTM clock granularity information 2016-08-25 08:32:34 -05:00