1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/pci/controller
Nadeem Athani 09c24094b2 PCI: cadence: Add quirk flag to set minimum delay in LTSSM Detect.Quiet state
PCIe fails to link up if SERDES lanes not used by PCIe are assigned to
another protocol. For example, link training fails if lanes 2 and 3 are
assigned to another protocol while lanes 0 and 1 are used for PCIe to
form a two lane link. This failure is due to an incorrect tie-off on an
internal status signal indicating electrical idle.

Status signals going from SERDES to PCIe Controller are tied-off when a
lane is not assigned to PCIe. Signal indicating electrical idle is
incorrectly tied-off to a state that indicates non-idle. As a result,
PCIe sees unused lanes to be out of electrical idle and this causes
LTSSM to exit Detect.Quiet state without waiting for 12ms timeout to
occur. If a receiver is not detected on the first receiver detection
attempt in Detect.Active state, LTSSM goes back to Detect.Quiet and
again moves forward to Detect.Active state without waiting for 12ms as
required by PCIe base specification. Since wait time in Detect.Quiet is
skipped, multiple receiver detect operations are performed back-to-back
without allowing time for capacitance on the transmit lines to
discharge. This causes subsequent receiver detection to always fail even
if a receiver gets connected eventually.

Add a quirk flag "quirk_detect_quiet_flag" to program the minimum
time the LTSSM should wait on entering Detect.Quiet state here.
This has to be set for J7200 as it has an incorrect tie-off on unused
lanes.

Link: https://lore.kernel.org/r/20210811123336.31357-3-kishon@ti.com
Signed-off-by: Nadeem Athani <nadeem@cadence.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2021-08-19 15:37:51 +01:00
..
cadence PCI: cadence: Add quirk flag to set minimum delay in LTSSM Detect.Quiet state 2021-08-19 15:37:51 +01:00
dwc pci-v5.14-changes 2021-07-08 12:06:20 -07:00
mobiveil PCI: mobiveil: Remove unused readl and writel functions 2021-06-03 17:13:55 +01:00
Kconfig PCI: ixp4xx: Add a new driver for IXP4xx 2021-06-17 11:42:48 +02:00
Makefile PCI: ixp4xx: Add a new driver for IXP4xx 2021-06-17 11:42:48 +02:00
pci-aardvark.c pci-v5.14-changes 2021-07-08 12:06:20 -07:00
pci-ftpci100.c PCI: ftpci100: Rename macro name collision 2021-06-03 17:27:23 +01:00
pci-host-common.c PCI/MSI: Make pci_host_common_probe() declare its reliance on MSI domains 2021-04-20 14:11:22 +01:00
pci-host-generic.c PCI: Unify ECAM constants in native PCI Express drivers 2020-12-10 14:55:49 -06:00
pci-hyperv-intf.c PCI: hv: Add a Hyper-V PCI interface driver for software backchannel interface 2019-08-22 00:25:12 -07:00
pci-hyperv.c pci-v5.14-changes 2021-07-08 12:06:20 -07:00
pci-ixp4xx.c PCI: ixp4xx: Add a new driver for IXP4xx 2021-06-17 11:42:48 +02:00
pci-loongson.c PCI: loongson: Simplify loongson_pci_probe() return expression 2020-10-02 12:56:31 +01:00
pci-mvebu.c PCI: mvebu: Fix duplicate resource requests 2020-11-04 13:55:30 -06:00
pci-rcar-gen2.c PCI: rcar-gen2: Use fallthrough pseudo-keyword 2020-09-07 15:17:20 +01:00
pci-tegra.c PCI: tegra: Add missing MODULE_DEVICE_TABLE 2021-06-24 17:43:12 -05:00
pci-thunder-ecam.c PCI: thunder: Fix compile testing 2021-03-11 15:07:46 -06:00
pci-thunder-pem.c PCI: thunder: Fix compile testing 2021-03-11 15:07:46 -06:00
pci-v3-semi.c PCI: v3-semi: Remove unneeded break 2020-10-20 10:59:55 -05:00
pci-versatile.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pci-xgene-msi.c PCI: xgene-msi: Fix race in installing chained irq handler 2021-01-18 15:48:06 +00:00
pci-xgene.c Merge branch 'pci/kernel-doc' 2021-07-06 10:56:29 -05:00
pcie-altera-msi.c PCI: altera-msi: Remove redundant dev_err call in altera_msi_probe() 2021-04-14 17:45:11 +01:00
pcie-altera.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pcie-brcmstb.c Merge branch 'pci/brcmstb' 2021-05-04 10:43:31 -05:00
pcie-hisi-error.c PCI: hip: Add handling of HiSilicon HIP PCIe controller errors 2020-09-16 10:30:42 +01:00
pcie-iproc-bcma.c PCI: iproc: Use module_bcma_driver to simplify the code 2020-10-02 12:45:26 +01:00
pcie-iproc-msi.c Merge branch 'remotes/lorenzo/pci/iproc' 2021-07-06 10:56:30 -05:00
pcie-iproc-platform.c PCI: iproc: Fix using plain integer as NULL pointer in iproc_pcie_pltfm_probe 2020-10-09 13:37:57 +01:00
pcie-iproc.c PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pcie-iproc.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pcie-mediatek-gen3.c PCI: mediatek-gen3: Add missing MODULE_DEVICE_TABLE 2021-06-22 11:16:53 +01:00
pcie-mediatek.c PCI: mediatek: Remove redundant error printing in mtk_pcie_subsys_powerup() 2021-06-03 17:45:52 +01:00
pcie-microchip-host.c PCI: microchip: Make the struct event_descs static 2021-06-03 17:11:45 +01:00
pcie-rcar-ep.c PCI: rcar: Add endpoint mode support 2020-05-22 12:35:32 +01:00
pcie-rcar-host.c PCI: rcar: Convert to MSI domains 2021-04-20 14:11:21 +01:00
pcie-rcar.c PCI: rcar: Fix calculating mask for PCIEPAMR register 2020-05-11 11:29:48 +01:00
pcie-rcar.h PCI: rcar: Add endpoint mode support 2020-05-22 12:35:32 +01:00
pcie-rockchip-ep.c PCI: Fix kerneldoc warnings 2020-08-05 18:23:14 -05:00
pcie-rockchip-host.c PCI: rockchip: Register IRQ handlers after device and data are ready 2021-07-01 08:46:52 -05:00
pcie-rockchip.c PCI: rockchip: Make 'ep-gpios' DT property optional 2021-02-23 14:23:50 -06:00
pcie-rockchip.h PCI: Unify ECAM constants in native PCI Express drivers 2020-12-10 14:55:49 -06:00
pcie-xilinx-cpm.c PCI: xilinx-cpm: Fix reference count leak on error path 2021-01-25 17:27:41 +00:00
pcie-xilinx-nwl.c PCI: xilinx-nwl: Enable coherent PCIe DMA traffic using CCI 2021-04-07 16:59:23 +01:00
pcie-xilinx.c PCI: xilinx: Convert to MSI domains 2021-04-20 14:11:21 +01:00
vmd.c PCI: vmd: Disable MSI-X remapping when possible 2021-03-22 14:08:20 +00:00