linux/drivers/pci/controller
Marek Vasut 84b5761462 PCI: rcar: Finish transition to L1 state in rcar_pcie_config_access()
In case the controller is transitioning to L1 in rcar_pcie_config_access(),
any read/write access to PCIECDR triggers asynchronous external abort. This
is because the transition to L1 link state must be manually finished by the
driver. The PCIe IP can transition back from L1 state to L0 on its own.

Avoid triggering the abort in rcar_pcie_config_access() by checking whether
the controller is in the transition state, and if so, finish the transition
right away. This prevents a lot of unnecessary exceptions, although not all
of them.

Link: https://lore.kernel.org/r/20220312212349.781799-1-marek.vasut@gmail.com
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Krzysztof Wilczyński <kw@linux.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: linux-renesas-soc@vger.kernel.org
2022-03-14 10:32:17 +00:00
..
cadence Merge branch 'pci/driver-cleanup' 2022-01-13 09:57:53 -06:00
dwc bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
mobiveil PCI: ls-gen4: Rename ls_pcie_g4 to ls_g4_pcie 2022-01-03 15:01:59 -06:00
Kconfig pci-v5.17-changes 2022-01-16 08:08:11 +02:00
Makefile Merge branch 'pci/host/mt7621' 2021-11-05 11:28:51 -05:00
pci-aardvark.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
pci-ftpci100.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05: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-hyperv.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
pci-ixp4xx.c ARM: ixp4xx: fix building both pci drivers 2021-08-12 23:10:09 +02:00
pci-loongson.c
pci-mvebu.c Merge branch 'pci/errors' 2022-01-13 09:57:52 -06:00
pci-rcar-gen2.c PCI: rcar-gen2: Rename rcar_pci_priv to rcar_pci 2022-01-03 15:05:28 -06:00
pci-tegra.c Merge branch 'remotes/lorenzo/pci/tegra' 2021-09-02 14:56:50 -05:00
pci-thunder-ecam.c PCI: thunder: Drop error data fabrication when config read fails 2021-11-18 13:39:32 -06:00
pci-thunder-pem.c PCI: thunder: Drop error data fabrication when config read fails 2021-11-18 13:39:32 -06:00
pci-v3-semi.c
pci-versatile.c
pci-xgene-msi.c PCI: xgene-msi: Use bitmap_zalloc() when applicable 2021-11-29 17:29:15 +00:00
pci-xgene.c Merge branch 'pci/driver-cleanup' 2022-01-13 09:57:53 -06:00
pcie-altera-msi.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-altera.c Merge branch 'pci/driver-cleanup' 2022-01-13 09:57:53 -06:00
pcie-apple.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
pcie-brcmstb.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
pcie-hisi-error.c
pcie-iproc-bcma.c PCI: iproc: Rename iproc_pcie_bcma_ to iproc_bcma_pcie_ 2022-01-03 15:01:49 -06:00
pcie-iproc-msi.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-iproc-platform.c PCI: iproc: Rename iproc_pcie_pltfm_ to iproc_pltfm_pcie_ 2022-01-03 15:01:53 -06:00
pcie-iproc.c PCI: iproc: Drop error data fabrication when config read fails 2021-11-18 13:39:52 -06:00
pcie-iproc.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pcie-mediatek-gen3.c Merge branch 'pci/driver-cleanup' 2022-01-13 09:57:53 -06:00
pcie-mediatek.c Merge branch 'pci/errors' 2022-01-13 09:57:52 -06:00
pcie-microchip-host.c PCI: microchip: Rename mc_port to mc_pcie 2022-01-03 15:02:08 -06:00
pcie-mt7621.c Merge branch 'pci/driver-cleanup' 2022-01-13 09:57:53 -06:00
pcie-rcar-ep.c PCI: rcar-ep: Remove unneeded includes 2021-10-08 09:41:38 -05:00
pcie-rcar-host.c PCI: rcar: Finish transition to L1 state in rcar_pcie_config_access() 2022-03-14 10:32:17 +00:00
pcie-rcar.c
pcie-rcar.h PCI: rcar: Add L1 link state fix into data abort hook 2021-08-16 14:51:30 +01:00
pcie-rockchip-ep.c PCI: endpoint: Add virtual function number in pci_epc ops 2021-08-19 14:13:28 +01:00
pcie-rockchip-host.c PCI: rockchip-host: Drop error data fabrication when config read fails 2021-11-18 13:41:25 -06: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: Rename xilinx_cpm_pcie_port to xilinx_cpm_pcie 2022-01-03 15:05:28 -06:00
pcie-xilinx-nwl.c PCI: xilinx-nwl: Simplify code and fix a memory leak 2021-12-01 09:26:51 +00:00
pcie-xilinx.c PCI: xilinx: Rename xilinx_pcie_port to xilinx_pcie 2022-01-03 15:05:28 -06:00
vmd.c Merge branch 'pci/errors' 2022-01-13 09:57:52 -06:00