From 666775e30a724da77ad75de1d4e9cfc3ed783297 Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Mon, 14 Oct 2024 10:29:44 +0800 Subject: [PATCH] PCI: rockchip: dw: Add runtime pm support Currently, the PCIe pd is in unsupported state which fails to power down it even if not devices attached.This patch is required when the pcie controller sits on a bus with its own power domain and clocks which are controlled via a bus driver like simple pm bus. Change-Id: Ic0fbaec82a25b92e9b874aa3003f0b18451985a6 Signed-off-by: Shawn Lin --- drivers/pci/controller/dwc/pcie-dw-rockchip.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c index 5ac2e5bd0272..d13194f311bf 100644 --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -1506,6 +1507,9 @@ static int rk_pcie_really_probe(void *p) if (ret) goto release_driver; + pm_runtime_enable(dev); + pm_runtime_get_sync(pci->dev); + reset_control_assert(rk_pcie->rsts); udelay(10); @@ -1591,6 +1595,8 @@ disable_phy: disable_clk: clk_bulk_disable_unprepare(rk_pcie->clk_cnt, rk_pcie->clks); disable_vpcie3v3: + pm_runtime_put(dev); + pm_runtime_disable(dev); rk_pcie_disable_power(rk_pcie); release_driver: if (IS_ENABLED(CONFIG_PCIE_RK_THREADED_INIT))