PCI: qcom: Add support for system suspend and resume
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Mon, 3 Apr 2023 15:49:22 +0000 (21:19 +0530)
committerLorenzo Pieralisi <lpieralisi@kernel.org>
Wed, 12 Apr 2023 06:48:53 +0000 (08:48 +0200)
commitad9b9b6e36c920234af6e86982dd48be560385b1
tree66a85b1409cdf09dd68fc1c21ffab9437d74aa94
parent05f4646409625b45e315ed0c5ab1078445f5ef43
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>
drivers/pci/controller/dwc/pcie-qcom.c