Re: [PATCH] clk: qcom: gcc-eliza: Use retention for PCIe power domains
From: Jagadeesh Kona
Date: Mon Oct 12 2026 - 05:29:15 EST
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@xxxxxxxxxxxxxxxx>
> ---
> 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@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20260729071514.859778-1-manivannan.sadhasivam@xxxxxxxxxxxxxxxx/
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@xxxxxxxxxxxxxxxx>
>
>