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/Zf25Sv2x9WaCFuIH@xxxxxxxxxxxxxxxxxxxx/ > Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx> Thanks for fixing this, it never made it off my todo list... Reviewed-by: Bjorn Andersson <andersson@xxxxxxxxxx> 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 >