2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/pci/controller/dwc
Manivannan Sadhasivam ad9b9b6e36 PCI: qcom: Add support for system suspend and resume
During the system suspend, vote for minimal interconnect bandwidth (1KiB)
to keep the interconnect path active for config access and also turn OFF
the resources like clock and PHY if there are no active devices connected
to the controller. For the controllers with active devices, the resources
are kept ON as removing the resources will trigger access violation during
the late end of suspend cycle as kernel tries to access the config space of
PCIe devices to mask the MSIs.

Also, it is not desirable to put the link into L2/L3 state as that
implies VDD supply will be removed and the devices may go into powerdown
state. This will affect the lifetime of storage devices like NVMe.

And finally, during resume, turn ON the resources if the controller was
truly suspended (resources OFF) and update the interconnect bandwidth
based on PCIe Gen speed.

Suggested-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Link: https://lore.kernel.org/r/20230403154922.20704-2-manivannan.sadhasivam@linaro.org
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Acked-by: Dhruva Gole <d-gole@ti.com>
2023-04-12 08:48:53 +02:00
..
Kconfig pci-v6.3-changes 2023-02-24 16:51:40 -08:00
Makefile PCI: dwc: Add Baikal-T1 PCIe controller support 2022-11-23 16:01:55 +01:00
pci-dra7xx.c PCI: dra7xx: Use threaded IRQ handler for "dra7xx-pcie-main" IRQ 2023-02-14 07:26:45 +09:00
pci-exynos.c Merge branch 'pci/ctrl/pm-ops' 2022-08-04 11:46:52 -05:00
pci-imx6.c PCI: imx6: Add i.MX8MP PCIe EP support 2023-01-16 10:41:59 +01:00
pci-keystone.c Merge branch 'pci/misc' 2022-08-04 11:46:53 -05:00
pci-layerscape-ep.c PCI: dwc: Add start_link/stop_link inlines 2022-07-05 19:00:52 -05:00
pci-layerscape.c PCI: Remove unnecessary <linux/of_irq.h> includes 2022-11-10 14:53:51 -06:00
pci-meson.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-al.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-armada8k.c PCI: Remove unnecessary <linux/of_irq.h> includes 2022-11-10 14:53:51 -06:00
pcie-artpec6.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-bt1.c PCI: bt1: Set 64-bit DMA mask 2023-02-22 13:46:14 -06:00
pcie-designware-ep.c PCI: dwc: Add Root Port and Endpoint controller eDMA engine support 2023-02-22 13:46:14 -06:00
pcie-designware-host.c PCI: dwc: Add Root Port and Endpoint controller eDMA engine support 2023-02-22 13:46:14 -06:00
pcie-designware-plat.c PCI: dwc-plat: Drop dw_plat_pcie_of_match[] forward declaration 2022-07-05 19:00:52 -05:00
pcie-designware.c PCI: dwc: Add Root Port and Endpoint controller eDMA engine support 2023-02-22 13:46:14 -06:00
pcie-designware.h PCI: dwc: Add Root Port and Endpoint controller eDMA engine support 2023-02-22 13:46:14 -06:00
pcie-dw-rockchip.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-fu740.c Merge branch 'pci/ctrl/fu740' 2022-08-04 11:41:55 -05:00
pcie-hisi.c PCI: hisi: Avoid invalid address space conversions 2022-01-03 15:05:28 -06:00
pcie-histb.c PCI: Remove MODULE_LICENSE so boolean drivers don't look like modules 2023-02-17 08:47:58 -06:00
pcie-intel-gw.c Merge branch 'pci/ctrl/pm-ops' 2022-08-04 11:46:52 -05:00
pcie-keembay.c PCI: dwc: Convert struct pcie_port.msi_irq to an array 2022-08-01 15:15:33 -05:00
pcie-kirin.c PCI: dwc: Replace of_gpio_named_count() by gpiod_count() 2022-10-03 10:34:46 +02:00
pcie-qcom-ep.c PCI: qcom-ep: Setup PHY to work in EP mode 2022-10-17 13:14:24 +05:30
pcie-qcom.c PCI: qcom: Add support for system suspend and resume 2023-04-12 08:48:53 +02:00
pcie-spear13xx.c Merge branch 'pci/misc' 2022-08-04 11:46:53 -05:00
pcie-tegra194-acpi.c PCI: dwc: Simplify in/outbound iATU setup methods 2022-08-01 15:15:09 -05:00
pcie-tegra194.c PCI: tegra194: Move dw_pcie_ep_linkup() to threaded IRQ handler 2023-02-14 07:26:56 +09:00
pcie-uniphier-ep.c PCI: uniphier-ep: Add NX1 support 2022-02-11 16:26:21 +00:00
pcie-uniphier.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00
pcie-visconti.c PCI: dwc: Rename struct pcie_port to dw_pcie_rp 2022-07-05 19:00:52 -05:00