Re: [PATCH v2] clk: qcom: gcc-sc8280xp: Allow PCIe GDSCs to enter retention state

From: Konrad Dybcio
Date: Thu Jul 06 2023 - 16:54:25 EST


On 6.07.2023 16:40, Konrad Dybcio wrote:
> On 6.07.2023 16:17, Johan Hovold wrote:
>> On Thu, Jul 06, 2023 at 07:38:42PM +0530, Manivannan Sadhasivam wrote:
>>> With the minimal system suspend support in place for the PCIe driver that
>>> keeps the interconnect path voted, the ALWAYS_ON flag can now be dropped.
>>>
>>> Also, the PWRSTS_RET_ON flag should be used to allow the GDSCs to enter the
>>> retention state when the parent domain get's turned off during system
>>> suspend.
>>>
>>> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
>>> ---
>>>
>>> Changes in v2:
>>>
>>> * Changed the patch from simple revert to changing the ALWAYS_ON flag to
>>> PWRSTS_RET_ON.
>>>
>>> drivers/clk/qcom/gcc-sc8280xp.c | 10 +++++-----
>>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c
>>> index 04a99dbaa57e..c59b0f91c87d 100644
>>> --- a/drivers/clk/qcom/gcc-sc8280xp.c
>>> +++ b/drivers/clk/qcom/gcc-sc8280xp.c
>>> @@ -6786,7 +6786,7 @@ static struct gdsc pcie_2a_gdsc = {
>>> .name = "pcie_2a_gdsc",
>>> },
>>> .pwrsts = PWRSTS_OFF_ON,
>>> - .flags = VOTABLE | ALWAYS_ON,
>>> + .flags = VOTABLE | PWRSTS_RET_ON,
>>> };
>>
>> This is not correct either. PWRSTS_RET_ON is a pwrsts mask...
> This + please rebase atop that:
>
> https://lore.kernel.org/linux-arm-msm/20230620-topic-sc8280_gccgdsc-v2-0-562c1428c10d@xxxxxxxxxx/
Moreover, I tried a similar patch out.

Johan's v6.4 branch + the patchset I linked + removing ALWAYS_ON from gcc
(so keeping PWRSTS_OFF_ON) and PCIe survives a wakeup-s2idle-wakeup cycle.

I am however running with clk_ignore_unused, so I don't know how this
impacts the RPMh system suspend situation.

Konrad

>
> Konrad
>>
>> Johan