2022-08-05 12:20:42

by Johan Hovold

[permalink] [raw]
Subject: [PATCH 2/2] clk: gcc-sc8280xp: keep USB power-domains always-on

The Qualcomm DWC3 driver suspend implementation appears to be incomplete
for SC8280XP so keep the USB power domains always-on for now so that the
controller survives a suspend cycle.

Signed-off-by: Johan Hovold <[email protected]>
---
drivers/clk/qcom/gcc-sc8280xp.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c
index eaeada42e13a..7768e6901dcc 100644
--- a/drivers/clk/qcom/gcc-sc8280xp.c
+++ b/drivers/clk/qcom/gcc-sc8280xp.c
@@ -6843,12 +6843,17 @@ 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,
};

static struct gdsc usb30_prim_gdsc = {
@@ -6857,6 +6862,7 @@ static struct gdsc usb30_prim_gdsc = {
.name = "usb30_prim_gdsc",
},
.pwrsts = PWRSTS_OFF_ON,
+ .flags = ALWAYS_ON,
};

static struct gdsc usb30_sec_gdsc = {
@@ -6865,6 +6871,7 @@ static struct gdsc usb30_sec_gdsc = {
.name = "usb30_sec_gdsc",
},
.pwrsts = PWRSTS_OFF_ON,
+ .flags = ALWAYS_ON,
};

static struct clk_regmap *gcc_sc8280xp_clocks[] = {
--
2.35.1



2022-08-06 15:31:27

by 'Manivannan Sadhasivam'

[permalink] [raw]
Subject: Re: [PATCH 2/2] clk: gcc-sc8280xp: keep USB power-domains always-on

On Fri, Aug 05, 2022 at 02:12:50PM +0200, Johan Hovold wrote:
> The Qualcomm DWC3 driver suspend implementation appears to be incomplete
> for SC8280XP so keep the USB power domains always-on for now so that the
> controller survives a suspend cycle.
>
> Signed-off-by: Johan Hovold <[email protected]>

Reviewed-by: Manivannan Sadhasivam <[email protected]>

Thanks,
Mani

> ---
> drivers/clk/qcom/gcc-sc8280xp.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c
> index eaeada42e13a..7768e6901dcc 100644
> --- a/drivers/clk/qcom/gcc-sc8280xp.c
> +++ b/drivers/clk/qcom/gcc-sc8280xp.c
> @@ -6843,12 +6843,17 @@ 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,
> };
>
> static struct gdsc usb30_prim_gdsc = {
> @@ -6857,6 +6862,7 @@ static struct gdsc usb30_prim_gdsc = {
> .name = "usb30_prim_gdsc",
> },
> .pwrsts = PWRSTS_OFF_ON,
> + .flags = ALWAYS_ON,
> };
>
> static struct gdsc usb30_sec_gdsc = {
> @@ -6865,6 +6871,7 @@ static struct gdsc usb30_sec_gdsc = {
> .name = "usb30_sec_gdsc",
> },
> .pwrsts = PWRSTS_OFF_ON,
> + .flags = ALWAYS_ON,
> };
>
> static struct clk_regmap *gcc_sc8280xp_clocks[] = {
> --
> 2.35.1
>

--
மணிவண்ணன் சதாசிவம்