[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260102-pci_gdsc_fix-v1-4-b17ed3d175bc@oss.qualcomm.com>
Date: Fri, 02 Jan 2026 15:13:04 +0530
From: Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>
To: Bjorn Andersson <andersson@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>, Taniya Das <quic_tdas@...cinc.com>,
Konrad Dybcio <konradybcio@...nel.org>,
Bartosz Golaszewski <brgl@...nel.org>,
Shazad Hussain <quic_shazhuss@...cinc.com>,
Sibi Sankar <sibi.sankar@....qualcomm.com>,
Bryan O'Donoghue <bryan.odonoghue@...aro.org>,
Melody Olvera <quic_molvera@...cinc.com>,
Dmitry Baryshkov <lumag@...nel.org>,
Taniya Das <taniya.das@....qualcomm.com>,
Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>,
Konrad Dybcio <konrad.dybcio@....qualcomm.com>,
Imran Shaik <quic_imrashai@...cinc.com>,
Abel Vesa <abelvesa@...nel.org>, Abel Vesa <abelvesa@...nel.org>
Cc: linux-arm-msm@...r.kernel.org, linux-clk@...r.kernel.org,
linux-kernel@...r.kernel.org,
Rajendra Nayak <quic_rjendra@...cinc.com>,
manivannan.sadhasivam@....qualcomm.com,
Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>,
stable@...r.kernel.org
Subject: [PATCH 4/7] clk: qcom: gcc-glymur: Do not turn off PCIe GDSCs
during gdsc_disable()
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.
Fixes: efe504300a17 ("clk: qcom: gcc: Add support for Global Clock Controller")
Cc: stable@...r.kernel.org
Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>
---
drivers/clk/qcom/gcc-glymur.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/clk/qcom/gcc-glymur.c b/drivers/clk/qcom/gcc-glymur.c
index 238e205735ed594618b8526651968a4f73b1104e..5c66c1264f35b083d046d2c11f430f0f113001ef 100644
--- a/drivers/clk/qcom/gcc-glymur.c
+++ b/drivers/clk/qcom/gcc-glymur.c
@@ -7647,7 +7647,7 @@ static struct gdsc gcc_pcie_0_tunnel_gdsc = {
.pd = {
.name = "gcc_pcie_0_tunnel_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7659,7 +7659,7 @@ static struct gdsc gcc_pcie_1_tunnel_gdsc = {
.pd = {
.name = "gcc_pcie_1_tunnel_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7671,7 +7671,7 @@ static struct gdsc gcc_pcie_2_tunnel_gdsc = {
.pd = {
.name = "gcc_pcie_2_tunnel_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7683,7 +7683,7 @@ static struct gdsc gcc_pcie_3a_gdsc = {
.pd = {
.name = "gcc_pcie_3a_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7707,7 +7707,7 @@ static struct gdsc gcc_pcie_3b_gdsc = {
.pd = {
.name = "gcc_pcie_3b_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7731,7 +7731,7 @@ static struct gdsc gcc_pcie_4_gdsc = {
.pd = {
.name = "gcc_pcie_4_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7755,7 +7755,7 @@ static struct gdsc gcc_pcie_5_gdsc = {
.pd = {
.name = "gcc_pcie_5_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
@@ -7779,7 +7779,7 @@ static struct gdsc gcc_pcie_6_gdsc = {
.pd = {
.name = "gcc_pcie_6_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
};
--
2.34.1
Powered by blists - more mailing lists