mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] clk: qcom: gcc-eliza: Use retention for PCIe power domains
@ 2026-10-11 19:59 Abel Vesa
  2026-10-12  9:28 ` Jagadeesh Kona
  0 siblings, 1 reply; 2+ messages in thread
From: Abel Vesa @ 2026-10-11 19:59 UTC (permalink / raw)
  To: Bjorn Andersson, Stephen Boyd, Abel Vesa, Dmitry Baryshkov
  Cc: Brian Masney, Jerome Brunet, Konrad Dybcio, Taniya Das,
	Manivannan Sadhasivam, Loic Poulain, linux-arm-msm, linux-clk,
	linux-kernel, Abel Vesa

When resuming from system suspend on Eliza CQS EVK, gcc_pcie_0_gdsc
gets stuck off when powering back on, preventing the system from resuming.

Use retention for all four PCIe GDSCs, as on SM8550, to preserve their
state across suspend and allow the system to resume.

Fixes: 3d356ab4a1ec ("clk: qcom: Add support for Global clock controller on Eliza")
Assisted-by: LLM
Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
---
 drivers/clk/qcom/gcc-eliza.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/clk/qcom/gcc-eliza.c b/drivers/clk/qcom/gcc-eliza.c
index 064771726e9b..21fd93a1f6b2 100644
--- a/drivers/clk/qcom/gcc-eliza.c
+++ b/drivers/clk/qcom/gcc-eliza.c
@@ -2715,7 +2715,7 @@ static struct gdsc gcc_pcie_0_gdsc = {
 	.pd = {
 		.name = "gcc_pcie_0_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
 };
 
@@ -2729,7 +2729,7 @@ static struct gdsc gcc_pcie_0_phy_gdsc = {
 	.pd = {
 		.name = "gcc_pcie_0_phy_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
 };
 
@@ -2743,7 +2743,7 @@ static struct gdsc gcc_pcie_1_gdsc = {
 	.pd = {
 		.name = "gcc_pcie_1_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
 };
 
@@ -2757,7 +2757,7 @@ static struct gdsc gcc_pcie_1_phy_gdsc = {
 	.pd = {
 		.name = "gcc_pcie_1_phy_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
 };
 

---
base-commit: becb95e45ef0dda9ffb35156d909d3da7a2789c3
change-id: 20261011-eliza-pcie-gdsc-retention-daa497d5578f

Best regards,
--  
Abel Vesa <abel.vesa@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] clk: qcom: gcc-eliza: Use retention for PCIe power domains
  2026-10-11 19:59 [PATCH] clk: qcom: gcc-eliza: Use retention for PCIe power domains Abel Vesa
@ 2026-10-12  9:28 ` Jagadeesh Kona
  0 siblings, 0 replies; 2+ messages in thread
From: Jagadeesh Kona @ 2026-10-12  9:28 UTC (permalink / raw)
  To: Abel Vesa, Bjorn Andersson, Stephen Boyd, Abel Vesa, Dmitry Baryshkov
  Cc: Brian Masney, Jerome Brunet, Konrad Dybcio, Taniya Das,
	Manivannan Sadhasivam, Loic Poulain, linux-arm-msm, linux-clk,
	linux-kernel



On 10/12/2026 1:29 AM, Abel Vesa wrote:
> When resuming from system suspend on Eliza CQS EVK, gcc_pcie_0_gdsc
> gets stuck off when powering back on, preventing the system from resuming.
> 
> Use retention for all four PCIe GDSCs, as on SM8550, to preserve their
> state across suspend and allow the system to resume.
> 
> Fixes: 3d356ab4a1ec ("clk: qcom: Add support for Global clock controller on Eliza")
> Assisted-by: LLM
> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
> ---
>  drivers/clk/qcom/gcc-eliza.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 


Hi Abel,

Using PWRSTS_RET_ON keeps the GDSC forever ON after first enable and the GDSC never
collapses.

For similar issue on Lemans (pcie_0_gdsc gets stuck off when powering back on), picking
the below changes from PCIE side helped to power ON the GDSC properly without any issue.

https://lore.kernel.org/all/20260728-hotplug_pci-v1-1-d1f38cfb9122@oss.qualcomm.com/
https://lore.kernel.org/all/20260729071514.859778-1-manivannan.sadhasivam@oss.qualcomm.com/

Can you please try if above changes are helping on Eliza also?

Thanks,
Jagadeesh


> diff --git a/drivers/clk/qcom/gcc-eliza.c b/drivers/clk/qcom/gcc-eliza.c
> index 064771726e9b..21fd93a1f6b2 100644
> --- a/drivers/clk/qcom/gcc-eliza.c
> +++ b/drivers/clk/qcom/gcc-eliza.c
> @@ -2715,7 +2715,7 @@ static struct gdsc gcc_pcie_0_gdsc = {
>  	.pd = {
>  		.name = "gcc_pcie_0_gdsc",
>  	},
> -	.pwrsts = PWRSTS_OFF_ON,
> +	.pwrsts = PWRSTS_RET_ON,
>  	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
>  };
>  
> @@ -2729,7 +2729,7 @@ static struct gdsc gcc_pcie_0_phy_gdsc = {
>  	.pd = {
>  		.name = "gcc_pcie_0_phy_gdsc",
>  	},
> -	.pwrsts = PWRSTS_OFF_ON,
> +	.pwrsts = PWRSTS_RET_ON,
>  	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
>  };
>  
> @@ -2743,7 +2743,7 @@ static struct gdsc gcc_pcie_1_gdsc = {
>  	.pd = {
>  		.name = "gcc_pcie_1_gdsc",
>  	},
> -	.pwrsts = PWRSTS_OFF_ON,
> +	.pwrsts = PWRSTS_RET_ON,
>  	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
>  };
>  
> @@ -2757,7 +2757,7 @@ static struct gdsc gcc_pcie_1_phy_gdsc = {
>  	.pd = {
>  		.name = "gcc_pcie_1_phy_gdsc",
>  	},
> -	.pwrsts = PWRSTS_OFF_ON,
> +	.pwrsts = PWRSTS_RET_ON,
>  	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
>  };
>  
> 
> ---
> base-commit: becb95e45ef0dda9ffb35156d909d3da7a2789c3
> change-id: 20261011-eliza-pcie-gdsc-retention-daa497d5578f
> 
> Best regards,
> --  
> Abel Vesa <abel.vesa@oss.qualcomm.com>
> 
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-12  9:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-11 19:59 [PATCH] clk: qcom: gcc-eliza: Use retention for PCIe power domains Abel Vesa
2026-10-12  9:28 ` Jagadeesh Kona

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®