linux/drivers/pci/controller
Jisheng Zhang 07940c369a PCI: dwc: Fix MSI page leakage in suspend/resume
Currently, dw_pcie_msi_init() allocates and maps page for msi, then
program the PCIE_MSI_ADDR_LO and PCIE_MSI_ADDR_HI. The Root Complex
may lose power during suspend-to-RAM, so when we resume, we want to
redo the latter but not the former. If designware based driver (for
example, pcie-tegra194.c) calls dw_pcie_msi_init() in resume path, the
msi page will be leaked.

As pointed out by Rob and Ard, there's no need to allocate a page for
the MSI address, we could use an address in the driver data.

To avoid map the MSI msg again during resume, we move the map MSI msg
from dw_pcie_msi_init() to dw_pcie_host_init().

Suggested-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201009155505.5a580ef5@xhacker.debian
Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Rob Herring <robh@kernel.org>
2020-10-13 09:52:49 +01:00
..
cadence Merge branch 'pci/host-probe-refactor' 2020-08-05 18:24:21 -05:00
dwc PCI: dwc: Fix MSI page leakage in suspend/resume 2020-10-13 09:52:49 +01:00
mobiveil Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
Kconfig PCI: xilinx-cpm: Add Versal CPM Root Port driver 2020-08-05 17:09:15 -05:00
Makefile PCI: xilinx-cpm: Add Versal CPM Root Port driver 2020-08-05 17:09:15 -05:00
pci-aardvark.c Merge branch 'pci/host-probe-refactor' 2020-08-05 18:24:21 -05:00
pci-ftpci100.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pci-host-common.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pci-host-generic.c PCI: host-generic: Eliminate pci_host_common_probe wrappers 2020-05-07 09:29:43 +01: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: hv: Make some functions static 2020-07-28 11:22:17 +01:00
pci-loongson.c Merge branch 'pci/host-probe-refactor' 2020-08-05 18:24:21 -05:00
pci-mvebu.c Merge branch 'pci/host-probe-refactor' 2020-08-05 18:24:21 -05:00
pci-rcar-gen2.c PCI: Move DT resource setup into devm_pci_alloc_host_bridge() 2020-08-04 16:36:30 +01:00
pci-tegra.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pci-thunder-ecam.c PCI: host-generic: Eliminate pci_host_common_probe wrappers 2020-05-07 09:29:43 +01:00
pci-thunder-pem.c PCI: host-generic: Eliminate pci_host_common_probe wrappers 2020-05-07 09:29:43 +01:00
pci-v3-semi.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -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: Remove dev_err() when handing an error from platform_get_irq() 2020-08-03 09:26:03 -05:00
pci-xgene.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pcie-altera-msi.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pcie-altera.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pcie-brcmstb.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pcie-iproc-bcma.c
pcie-iproc-msi.c PCI: iproc-msi: Fix __iomem annotation in decode_msi_hwirq() 2019-10-17 11:01:24 +01:00
pcie-iproc-platform.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pcie-iproc.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pcie-iproc.h PCI: iproc: Use pci_host_probe() to register host 2020-07-10 11:50:23 +01:00
pcie-mediatek.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
pcie-rcar-ep.c PCI: rcar: Add endpoint mode support 2020-05-22 12:35:32 +01:00
pcie-rcar-host.c Merge branch 'pci/host-probe-refactor' 2020-08-05 18:24:21 -05: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 endpoint mode support 2020-05-22 12:35:32 +01:00
pcie-rockchip-ep.c PCI: Fix kerneldoc warnings 2020-08-05 18:23:14 -05:00
pcie-rockchip-host.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pcie-rockchip.c PCI: controller: Convert to devm_platform_ioremap_resource_byname() 2020-07-10 11:50:23 +01:00
pcie-rockchip.h PCI: rockchip: Use pci_is_root_bus() to check if bus is root bus 2020-07-23 11:20:50 +01:00
pcie-tango.c PCI: Remove dev_err() when handing an error from platform_get_irq() 2020-08-03 09:26:03 -05:00
pcie-xilinx-cpm.c Merge branch 'pci/host-probe-refactor' 2020-08-05 18:24:21 -05:00
pcie-xilinx-nwl.c Merge branch 'pci/irq-error' 2020-08-05 18:24:22 -05:00
pcie-xilinx.c PCI: Set bridge map_irq and swizzle_irq to default functions 2020-08-04 16:36:30 +01:00
vmd.c pci-v5.9-changes 2020-08-07 18:48:15 -07:00