linux/drivers/pci/controller/dwc
Trent Piepho 68bc10bf99 PCI: imx6: Fix link training status detection in link up check
This bug was introduced in the interaction for two commits on either
branch of the merge commit 562df5c852 ("Merge branch
'pci/host-designware' into next").

Commit 4d107d3b5a ("PCI: imx6: Move link up check into
imx6_pcie_wait_for_link()"), changed imx6_pcie_wait_for_link() to poll
the link status register directly, checking for link up and not
training, and made imx6_pcie_link_up() only check the link up bit (once,
not a polling loop).

While commit 886bc5ceb5 ("PCI: designware: Add generic
dw_pcie_wait_for_link()"), replaced the loop in
imx6_pcie_wait_for_link() with a call to a new dwc core function, which
polled imx6_pcie_link_up(), which still checked both link up and not
training in a loop.

When these two commits were merged, the version of
imx6_pcie_wait_for_link() from 886bc5ceb5 was kept, which eliminated
the link training check placed there by 4d107d3b5a. However, the
version of imx6_pcie_link_up() from 4d107d3b5a was kept, which
eliminated the link training check that had been there and was moved to
imx6_pcie_wait_for_link().

The result was the link training check got lost for the imx6 driver.

Eliminate imx6_pcie_link_up() so that the default handler,
dw_pcie_link_up(), is used instead. The default handler has the correct
code, which checks for link up and also that it still is not training,
fixing the regression.

Fixes: 562df5c852 ("Merge branch 'pci/host-designware' into next")
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
[lorenzo.pieralisi@arm.com: rewrote the commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Joao Pinto <Joao.Pinto@synopsys.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Richard Zhu <hongxing.zhu@nxp.com>
2018-11-20 11:09:34 +00:00
..
Kconfig
Makefile PCI: keystone: Merge pci-keystone-dw.c and pci-keystone.c 2018-10-17 09:43:44 +01:00
pci-dra7xx.c PCI: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-09-25 10:53:10 +01:00
pci-exynos.c PCI: exynos: Drop unnecessary root_bus_nr setting 2018-07-13 14:07:47 +01:00
pci-imx6.c PCI: imx6: Fix link training status detection in link up check 2018-11-20 11:09:34 +00:00
pci-keystone.c PCI: keystone: Cleanup macros defined in pci-keystone.c 2018-10-17 09:59:02 +01:00
pci-layerscape.c
pcie-armada8k.c PCI: armada8k: Drop unnecessary root_bus_nr setting 2018-07-13 14:08:28 +01:00
pcie-artpec6.c PCI: Update xxx_pcie_ep_raise_irq() and pci_epc_raise_irq() signatures 2018-07-19 11:34:42 +01:00
pcie-designware-ep.c PCI: dwc: Add legacy interrupt callback handler 2018-07-19 11:38:38 +01:00
pcie-designware-host.c PCI: designware: Fix I/O space page leak 2018-07-18 17:00:29 -05:00
pcie-designware-plat.c pci-epf-test/pci_endpoint_test: Add MSI-X support 2018-07-19 11:46:45 +01:00
pcie-designware.c PCI: dwc: Fix scheduling while atomic issues 2018-09-20 16:36:20 -05:00
pcie-designware.h pci-v4.20-changes 2018-10-25 06:50:48 -07:00
pcie-hisi.c
pcie-histb.c PCI: histb: Drop unnecessary root_bus_nr setting 2018-07-13 14:09:47 +01:00
pcie-kirin.c PCI: kirin: Fix section mismatch warning 2018-10-01 17:16:23 +01:00
pcie-qcom.c PCI: qcom: Fix error handling in runtime PM support 2018-09-18 10:13:14 +01:00
pcie-spear13xx.c PCI: spear13xx: Drop unnecessary root_bus_nr setting 2018-07-13 14:10:55 +01:00