2024-03-25 13:28:50

by Johan Hovold

[permalink] [raw]
Subject: [PATCH] clk: qcom: gdsc: treat optional supplies as optional

Since commit deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external
supply for GX gdsc") the GDSC supply must be treated as optional to
avoid warnings like:

gpu_cc-sc8280xp 3d90000.clock-controller: supply vdd-gfx not found, using dummy regulator

on SC8280XP.

Fortunately, the driver is already prepared to handle this by checking
that the regulator pointer is non-NULL before use.

This also avoids triggering a potential deadlock on SC8280XP even if the
underlying issue still remains for the derivative platforms like SA8295P
that actually use the supply.

Fixes: deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external supply for GX gdsc")
Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Johan Hovold <[email protected]>
---
drivers/clk/qcom/gdsc.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c
index e7a4068b9f39..df9618ab7eea 100644
--- a/drivers/clk/qcom/gdsc.c
+++ b/drivers/clk/qcom/gdsc.c
@@ -487,9 +487,14 @@ int gdsc_register(struct gdsc_desc *desc,
if (!scs[i] || !scs[i]->supply)
continue;

- scs[i]->rsupply = devm_regulator_get(dev, scs[i]->supply);
- if (IS_ERR(scs[i]->rsupply))
- return PTR_ERR(scs[i]->rsupply);
+ scs[i]->rsupply = devm_regulator_get_optional(dev, scs[i]->supply);
+ if (IS_ERR(scs[i]->rsupply)) {
+ ret = PTR_ERR(scs[i]->rsupply);
+ if (ret != -ENODEV)
+ return ret;
+
+ scs[i]->rsupply = NULL;
+ }
}

data->num_domains = num;
--
2.43.0



2024-03-25 19:45:40

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] clk: qcom: gdsc: treat optional supplies as optional

On Mon, Mar 25, 2024 at 09:58:35AM +0100, Johan Hovold wrote:
> Since commit deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external
> supply for GX gdsc") the GDSC supply must be treated as optional to
> avoid warnings like:
>
> gpu_cc-sc8280xp 3d90000.clock-controller: supply vdd-gfx not found, using dummy regulator
>
> on SC8280XP.
>
> Fortunately, the driver is already prepared to handle this by checking
> that the regulator pointer is non-NULL before use.
>
> This also avoids triggering a potential deadlock on SC8280XP even if the
> underlying issue still remains for the derivative platforms like SA8295P
> that actually use the supply.
>
> Fixes: deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external supply for GX gdsc")
> Link: https://lore.kernel.org/lkml/[email protected]/
> Signed-off-by: Johan Hovold <[email protected]>

Thanks for fixing this, it never made it off my todo list...

Reviewed-by: Bjorn Andersson <[email protected]>

Regards,
Bjorn

> ---
> drivers/clk/qcom/gdsc.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c
> index e7a4068b9f39..df9618ab7eea 100644
> --- a/drivers/clk/qcom/gdsc.c
> +++ b/drivers/clk/qcom/gdsc.c
> @@ -487,9 +487,14 @@ int gdsc_register(struct gdsc_desc *desc,
> if (!scs[i] || !scs[i]->supply)
> continue;
>
> - scs[i]->rsupply = devm_regulator_get(dev, scs[i]->supply);
> - if (IS_ERR(scs[i]->rsupply))
> - return PTR_ERR(scs[i]->rsupply);
> + scs[i]->rsupply = devm_regulator_get_optional(dev, scs[i]->supply);
> + if (IS_ERR(scs[i]->rsupply)) {
> + ret = PTR_ERR(scs[i]->rsupply);
> + if (ret != -ENODEV)
> + return ret;
> +
> + scs[i]->rsupply = NULL;
> + }
> }
>
> data->num_domains = num;
> --
> 2.43.0
>

2024-04-04 21:25:01

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] clk: qcom: gdsc: treat optional supplies as optional


On Mon, 25 Mar 2024 09:58:35 +0100, Johan Hovold wrote:
> Since commit deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external
> supply for GX gdsc") the GDSC supply must be treated as optional to
> avoid warnings like:
>
> gpu_cc-sc8280xp 3d90000.clock-controller: supply vdd-gfx not found, using dummy regulator
>
> on SC8280XP.
>
> [...]

Applied, thanks!

[1/1] clk: qcom: gdsc: treat optional supplies as optional
commit: 6677196fb1932e60b88ad0794a7ae532df178654

Best regards,
--
Bjorn Andersson <[email protected]>

2024-04-22 10:38:01

by Thorsten Leemhuis

[permalink] [raw]
Subject: Re: [PATCH] clk: qcom: gdsc: treat optional supplies as optional

On 04.04.24 23:22, Bjorn Andersson wrote:
>
> On Mon, 25 Mar 2024 09:58:35 +0100, Johan Hovold wrote:
>> Since commit deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external
>> supply for GX gdsc") the GDSC supply must be treated as optional to
>> avoid warnings like:
>>
>> gpu_cc-sc8280xp 3d90000.clock-controller: supply vdd-gfx not found, using dummy regulator
>>
>> on SC8280XP.
>>
>> [...]
>
> Applied, thanks!
>
> [1/1] clk: qcom: gdsc: treat optional supplies as optional
> commit: 6677196fb1932e60b88ad0794a7ae532df178654

Bjorn, quick question: this regression fix after more than two and a
half weeks is not yet mainlined. Is there a reason? Or am I missing
something here?

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

#regzbot poke

2024-04-22 18:31:55

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] clk: qcom: gdsc: treat optional supplies as optional

On Mon, Apr 22, 2024 at 12:31:37PM +0200, Linux regression tracking (Thorsten Leemhuis) wrote:
> On 04.04.24 23:22, Bjorn Andersson wrote:
> >
> > On Mon, 25 Mar 2024 09:58:35 +0100, Johan Hovold wrote:
> >> Since commit deebc79b28d6 ("clk: qcom: gpucc-sc8280xp: Add external
> >> supply for GX gdsc") the GDSC supply must be treated as optional to
> >> avoid warnings like:
> >>
> >> gpu_cc-sc8280xp 3d90000.clock-controller: supply vdd-gfx not found, using dummy regulator
> >>
> >> on SC8280XP.
> >>
> >> [...]
> >
> > Applied, thanks!
> >
> > [1/1] clk: qcom: gdsc: treat optional supplies as optional
> > commit: 6677196fb1932e60b88ad0794a7ae532df178654
>
> Bjorn, quick question: this regression fix after more than two and a
> half weeks is not yet mainlined. Is there a reason? Or am I missing
> something here?
>

I failed to propagate it, until only a few days back. It should show up
shortly.

Thanks,
Bjorn

> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
> --
> Everything you wanna know about Linux kernel regression tracking:
> https://linux-regtracking.leemhuis.info/about/#tldr
> If I did something stupid, please tell me, as explained on that page.
>
> #regzbot poke