linux-uconsole/drivers/pci/controller
Trent Piepho 2a031cab71 PCI: imx6: Fix link training status detection in link up check
[ Upstream commit 68bc10bf99 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2018-12-17 09:24:33 +01:00
..
dwc PCI: imx6: Fix link training status detection in link up check 2018-12-17 09:24:33 +01:00
Kconfig Merge branch 'remotes/lorenzo/pci/mobiveil' 2018-08-15 14:59:14 -05:00
Makefile PCI: mobiveil: Add Kconfig/Makefile entries 2018-07-30 14:30:16 +01:00
pci-aardvark.c Merge branch 'remotes/lorenzo/pci/aardvark' 2018-08-15 14:59:09 -05:00
pci-ftpci100.c PCI: faraday: Fix I/O space page leak 2018-07-18 17:01:14 -05:00
pci-host-common.c
pci-host-generic.c
pci-hyperv.c PCI: hv: Fix return value check in hv_pci_assign_slots() 2018-09-21 19:13:22 -07:00
pci-mvebu.c PCI: mvebu: Fix PCI I/O mapping creation sequence 2018-10-01 15:42:09 -05:00
pci-rcar-gen2.c
pci-tegra.c
pci-thunder-ecam.c
pci-thunder-pem.c
pci-v3-semi.c PCI: v3-semi: Fix I/O space page leak 2018-07-18 17:02:13 -05:00
pci-versatile.c PCI: versatile: Fix I/O space page leak 2018-07-18 17:00:11 -05:00
pci-xgene-msi.c
pci-xgene.c PCI: xgene: Fix I/O space page leak 2018-07-18 16:59:40 -05:00
pcie-altera-msi.c
pcie-altera.c
pcie-cadence-ep.c PCI: cadence: Use AXI region 0 to signal interrupts from EP 2018-11-13 11:08:33 -08:00
pcie-cadence-host.c PCI: cadence: Add shutdown callback to host driver 2018-07-12 12:46:41 +01:00
pcie-cadence.c PCI: cadence: Correct probe behaviour when failing to get PHY 2018-11-13 11:08:35 -08:00
pcie-cadence.h PCI: cadence: Add Power Management ops for host and EP 2018-07-12 12:44:14 +01:00
pcie-iproc-bcma.c
pcie-iproc-msi.c
pcie-iproc-platform.c
pcie-iproc.c PCI: iproc: Reduce inbound/outbound mapping print level 2018-07-13 11:59:21 +01:00
pcie-iproc.h PCI: iproc: Reject unconfigured physical functions from PAXC 2018-07-13 11:56:55 +01:00
pcie-mediatek.c PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic 2018-11-13 11:08:33 -08:00
pcie-mobiveil.c PCI: mobiveil: Add missing ../pci.h include 2018-07-30 14:30:12 +01:00
pcie-rcar.c PCI: rcar: Clean up PHY init on failure 2018-06-29 13:48:54 -05:00
pcie-rockchip-ep.c PCI: Update xxx_pcie_ep_raise_irq() and pci_epc_raise_irq() signatures 2018-07-19 11:34:42 +01:00
pcie-rockchip-host.c
pcie-rockchip.c
pcie-rockchip.h
pcie-tango.c
pcie-xilinx-nwl.c PCI: xilinx-nwl: Add missing of_node_put() 2018-06-29 13:50:10 -05:00
pcie-xilinx.c PCI: xilinx: Add missing of_node_put() 2018-06-29 13:49:54 -05:00
vmd.c PCI: vmd: White list for fast interrupt handlers 2018-06-28 17:25:33 +01:00