[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48af9193-452f-ffb8-39c7-0d17068af658@somainline.org>
Date: Fri, 30 Sep 2022 01:38:21 +0200
From: Konrad Dybcio <konrad.dybcio@...ainline.org>
To: Johan Hovold <johan+linaro@...nel.org>,
Bjorn Andersson <andersson@...nel.org>
Cc: Andy Gross <agross@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
Rajendra Nayak <quic_rjendra@...cinc.com>,
linux-arm-msm@...r.kernel.org, linux-clk@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] clk: gcc-sc8280xp: use retention for USB power domains
On 29.09.2022 18:11, Johan Hovold wrote:
> Since commit d399723950c4 ("clk: qcom: gdsc: Fix the handling of
> PWRSTS_RET support) retention mode can be used on sc8280xp to maintain
> state during suspend instead of leaving the domain always on.
>
> This is needed to eventually allow the parent CX domain to be powered
> down during suspend.
>
> Signed-off-by: Johan Hovold <johan+linaro@...nel.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@...ainline.org>
Konrad
> drivers/clk/qcom/gcc-sc8280xp.c | 13 +++----------
> 1 file changed, 3 insertions(+), 10 deletions(-)
>
> While we're not yet able to fully test this (since we're not hitting CX
> power down) this can still go in as we'll need it in some form
> eventually.
>
> Note that the PCIe domains should remain always-on until we have driver
> support for suspend in place.
>
> Johan
>
>
> diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c
> index 7768e6901dcc..a18ed88f3b82 100644
> --- a/drivers/clk/qcom/gcc-sc8280xp.c
> +++ b/drivers/clk/qcom/gcc-sc8280xp.c
> @@ -6843,17 +6843,12 @@ static struct gdsc ufs_phy_gdsc = {
> .pwrsts = PWRSTS_OFF_ON,
> };
>
> -/*
> - * The Qualcomm DWC3 driver suspend implementation appears to be incomplete
> - * for sc8280xp so keep the USB power domains always-on for now.
> - */
> static struct gdsc usb30_mp_gdsc = {
> .gdscr = 0xab004,
> .pd = {
> .name = "usb30_mp_gdsc",
> },
> - .pwrsts = PWRSTS_OFF_ON,
> - .flags = ALWAYS_ON,
> + .pwrsts = PWRSTS_RET_ON,
> };
>
> static struct gdsc usb30_prim_gdsc = {
> @@ -6861,8 +6856,7 @@ static struct gdsc usb30_prim_gdsc = {
> .pd = {
> .name = "usb30_prim_gdsc",
> },
> - .pwrsts = PWRSTS_OFF_ON,
> - .flags = ALWAYS_ON,
> + .pwrsts = PWRSTS_RET_ON,
> };
>
> static struct gdsc usb30_sec_gdsc = {
> @@ -6870,8 +6864,7 @@ static struct gdsc usb30_sec_gdsc = {
> .pd = {
> .name = "usb30_sec_gdsc",
> },
> - .pwrsts = PWRSTS_OFF_ON,
> - .flags = ALWAYS_ON,
> + .pwrsts = PWRSTS_RET_ON,
> };
>
> static struct clk_regmap *gcc_sc8280xp_clocks[] = {
Powered by blists - more mailing lists