1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/pci/controller
Pali Rohár 273ddd86d6 PCI: aardvark: Fix support for PME requester on emulated bridge
Enable aardvark PME interrupt unconditionally by unmasking it and read PME
requester ID to emulated bridge config space immediately after receiving
interrupt.

PME requester ID is stored in the PCIE_MSG_LOG_REG register, which contains
the last inbound message. So when new inbound message is received by HW
(including non-PM), the content in PCIE_MSG_LOG_REG register is replaced by
a new value.

PCIe specification mandates that subsequent PMEs are kept pending until the
PME Status Register bit is cleared by software by writing a 1b.

Support for masking/unmasking PME interrupt on emulated bridge via
PCI_EXP_RTCTL_PMEIE bit is now implemented only in emulated bridge config
space, to ensure that we do not miss any aardvark PME interrupt.

Reading of PCI_EXP_RTCAP and PCI_EXP_RTSTA registers is simplified as final
value is now always stored into emulated bridge config space by the
interrupt handler, so there is no need to implement support for these
registers in read_pcie callback.

Clearing of W1C bit PCI_EXP_RTSTA_PME is now also simplified as it is done
by pci-bridge-emul.c code for emulated bridge config space. So there is no
need to implement support for clearing this bit in write_pcie callback.

Link: https://lore.kernel.org/r/20220110015018.26359-18-kabel@kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2022-02-08 10:44:27 +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: aardvark: Fix support for PME requester on emulated bridge 2022-02-08 10:44:27 +00: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: hv: Add a Hyper-V PCI interface driver for software backchannel interface 2019-08-22 00:25:12 -07:00
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: loongson: Simplify loongson_pci_probe() return expression 2020-10-02 12:56:31 +01:00
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: v3-semi: Remove unneeded break 2020-10-20 10:59:55 -05:00
pci-versatile.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
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 PCI: hip: Add handling of HiSilicon HIP PCIe controller errors 2020-09-16 10:30:42 +01:00
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 Merge branch 'pci/errors' 2022-01-13 09:57:52 -06:00
pcie-rcar.c PCI: rcar: Fix calculating mask for PCIEPAMR register 2020-05-11 11:29:48 +01:00
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