mirror of https://github.com/torvalds/linux.git
Previously meson_pcie_link_up() only returned true if the link was in the
L0 state. This was incorrect because hardware autonomously manages
transitions between L0, L0s, and L1 while both components on the link stay
in D0. Those states should all be treated as "link is active".
Returning false when the device was in L0s or L1 broke config accesses
because dw_pcie_other_conf_map_bus() fails if the link is down, which
caused errors like this:
meson-pcie fc000000.pcie: error: wait linkup timeout
pci 0000:01:00.0: BAR 0: error updating (0xfc700004 != 0xffffffff)
Remove the LTSSM state check, timeout, speed check, and error message from
meson_pcie_link_up(), the dw_pcie_ops.link_up() method, so it is a simple
boolean check of whether the link is active. Timeouts and error messages
are handled at a higher level, e.g., dw_pcie_wait_for_link().
Fixes:
|
||
|---|---|---|
| .. | ||
| cadence | ||
| dwc | ||
| mobiveil | ||
| plda | ||
| Kconfig | ||
| Makefile | ||
| pci-aardvark.c | ||
| pci-ftpci100.c | ||
| pci-host-common.c | ||
| pci-host-common.h | ||
| pci-host-generic.c | ||
| pci-hyperv-intf.c | ||
| pci-hyperv.c | ||
| pci-ixp4xx.c | ||
| pci-loongson.c | ||
| pci-mvebu.c | ||
| pci-rcar-gen2.c | ||
| pci-tegra.c | ||
| pci-thunder-ecam.c | ||
| pci-thunder-pem.c | ||
| pci-v3-semi.c | ||
| pci-versatile.c | ||
| pci-xgene-msi.c | ||
| pci-xgene.c | ||
| pcie-altera-msi.c | ||
| pcie-altera.c | ||
| pcie-apple.c | ||
| pcie-brcmstb.c | ||
| pcie-hisi-error.c | ||
| pcie-iproc-bcma.c | ||
| pcie-iproc-msi.c | ||
| pcie-iproc-platform.c | ||
| pcie-iproc.c | ||
| pcie-iproc.h | ||
| pcie-mediatek-gen3.c | ||
| pcie-mediatek.c | ||
| pcie-mt7621.c | ||
| pcie-rcar-ep.c | ||
| pcie-rcar-host.c | ||
| pcie-rcar.c | ||
| pcie-rcar.h | ||
| pcie-rockchip-ep.c | ||
| pcie-rockchip-host.c | ||
| pcie-rockchip.c | ||
| pcie-rockchip.h | ||
| pcie-rzg3s-host.c | ||
| pcie-xilinx-common.h | ||
| pcie-xilinx-cpm.c | ||
| pcie-xilinx-dma-pl.c | ||
| pcie-xilinx-nwl.c | ||
| pcie-xilinx.c | ||
| vmd.c | ||