linux/drivers/pci
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
..
controller PCI: rcar: Finish transition to L1 state in rcar_pcie_config_access() 2022-03-14 10:32:17 +00:00
endpoint Merge branch 'pci/misc' 2022-01-13 09:57:52 -06:00
hotplug Merge branch 'pci/errors' 2022-01-13 09:57:52 -06:00
msi PCI/MSI: Unbreak pci_irq_get_affinity() 2021-12-18 20:33:21 +01:00
pcie Merge branch 'pci/errors' 2022-01-13 09:57:52 -06:00
switch PCI/switchtec: Declare local state_names[] as static 2021-11-19 12:14:02 -06:00
access.c PCI: Use PCI_ERROR_RESPONSE to identify config read errors 2021-11-18 14:31:43 -06:00
ats.c PCI: Allow PASID on fake PCIe devices without TLP prefixes 2021-08-26 14:21:42 -05:00
bus.c
ecam.c PCI: Dynamically map ECAM regions 2021-06-16 17:20:40 -05:00
host-bridge.c PCI: VMD: ACPI: Make ACPI companion lookup work for VMD bus 2021-09-02 17:59:58 +02:00
iov.c Revert "PCI: Use to_pci_driver() instead of pci_dev->driver" 2021-11-11 13:36:22 -06:00
irq.c
Kconfig PCI: hv: Add arm64 Hyper-V vPCI support 2022-01-12 08:24:29 -06:00
Makefile PCI/MSI: Move code into a separate directory 2021-12-09 11:52:22 +01:00
mmap.c
of.c PCI: Correct misspelled words 2022-01-07 20:43:23 -06:00
p2pdma.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
pci-acpi.c Merge branch 'pm-pci' 2021-11-02 19:06:30 +01:00
pci-bridge-emul.c Merge branch 'remotes/lorenzo/pci/bridge-emul' 2022-01-13 09:57:51 -06:00
pci-bridge-emul.h PCI: pci-bridge-emul: Add PCIe Root Capabilities Register 2021-08-05 10:51:49 +01:00
pci-driver.c Revert "PCI: Use to_pci_driver() instead of pci_dev->driver" 2021-11-11 13:36:22 -06:00
pci-label.c PCI/sysfs: Use sysfs_emit() and sysfs_emit_at() in "show" functions 2021-06-03 22:14:47 -05:00
pci-mid.c PCI: PM: Do not use pci_platform_pm_ops for Intel MID PM 2021-09-27 17:13:21 +02:00
pci-pf-stub.c PCI/IOV: Simplify pci-pf-stub with module_pci_driver() 2020-09-17 12:40:20 -05:00
pci-stub.c
pci-sysfs.c PCI/sysfs: Use pci_irq_vector() 2021-12-09 11:52:21 +01:00
pci.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
pci.h pci-v5.16-changes 2021-11-06 14:36:12 -07:00
probe.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
proc.c proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
quirks.c pci-v5.17-changes 2022-01-16 08:08:11 +02:00
remove.c PCI: Remove reset_fn field from pci_dev 2021-08-17 17:44:38 -05:00
rom.c PCI: Prefer 'unsigned int' over bare 'unsigned' 2021-10-27 13:41:22 -05:00
search.c PCI: Remove WARN_ON(in_interrupt()) 2021-02-10 16:46:29 -06:00
setup-bus.c PCI: Prefer 'unsigned int' over bare 'unsigned' 2021-10-27 13:41:22 -05:00
setup-irq.c PCI: Tidy comments 2021-09-28 13:43:17 -05:00
setup-res.c PCI: Work around Intel I210 ROM BAR overlap defect 2022-01-11 09:33:10 -06:00
slot.c PCI/sysfs: Use default_groups in kobj_type for slot attrs 2021-12-29 13:42:04 -06:00
syscall.c PCI: Return int from pciconfig_read() syscall 2021-08-03 16:55:48 -05:00
vc.c PCI: Fix kerneldoc warnings 2020-08-05 18:23:14 -05:00
vpd.c PCI/VPD: Use pci_read_vpd_any() in pci_vpd_size() 2021-10-25 19:12:23 -05:00
xen-pcifront.c xen/pcifront: Rework MSI handling 2021-12-16 22:22:18 +01:00