]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: qcom: gcc-sm8550: Do not turn off PCIe GDSCs during gdsc_disable()
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Thu, 19 Dec 2024 17:00:10 +0000 (22:30 +0530)
committerBjorn Andersson <andersson@kernel.org>
Thu, 26 Dec 2024 04:03:18 +0000 (22:03 -0600)
With PWRSTS_OFF_ON, PCIe GDSCs are turned off during gdsc_disable(). This
can happen during scenarios such as system suspend and breaks the resume
of PCIe controllers from suspend.

So use PWRSTS_RET_ON to indicate the GDSC driver to not turn off the GDSCs
during gdsc_disable() and allow the hardware to transition the GDSCs to
retention when the parent domain enters low power state during system
suspend.

Cc: stable@vger.kernel.org # 6.2
Fixes: 955f2ea3b9e9 ("clk: qcom: Add GCC driver for SM8550")
Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on QRD8550
Link: https://lore.kernel.org/r/20241219170011.70140-1-manivannan.sadhasivam@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/gcc-sm8550.c

index 5abaeddd6afcc5ae31385ebe1228c3dabf44292e..862a9bf73bcb5d66df0983200b61479364a62227 100644 (file)
@@ -3003,7 +3003,7 @@ static struct gdsc pcie_0_gdsc = {
        .pd = {
                .name = "pcie_0_gdsc",
        },
-       .pwrsts = PWRSTS_OFF_ON,
+       .pwrsts = PWRSTS_RET_ON,
        .flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
@@ -3014,7 +3014,7 @@ static struct gdsc pcie_0_phy_gdsc = {
        .pd = {
                .name = "pcie_0_phy_gdsc",
        },
-       .pwrsts = PWRSTS_OFF_ON,
+       .pwrsts = PWRSTS_RET_ON,
        .flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
@@ -3025,7 +3025,7 @@ static struct gdsc pcie_1_gdsc = {
        .pd = {
                .name = "pcie_1_gdsc",
        },
-       .pwrsts = PWRSTS_OFF_ON,
+       .pwrsts = PWRSTS_RET_ON,
        .flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
@@ -3036,7 +3036,7 @@ static struct gdsc pcie_1_phy_gdsc = {
        .pd = {
                .name = "pcie_1_phy_gdsc",
        },
-       .pwrsts = PWRSTS_OFF_ON,
+       .pwrsts = PWRSTS_RET_ON,
        .flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };