Re: [PATCH v2 05/14] clk: qcom: apcs-msm8916: get parent clock names from DT

From: Stephen Boyd
Date: Thu Apr 25 2019 - 17:29:09 EST


Quoting Jorge Ramirez (2019-04-22 04:44:50)
> On 2/22/19 19:11, Stephen Boyd wrote:
> > Quoting Jorge Ramirez-Ortiz (2019-01-28 10:32:52)
> >> @@ -61,6 +65,25 @@ static int qcom_apcs_msm8916_clk_probe(struct platform_device *pdev)
> >> if (!a53cc)
> >> return -ENOMEM;
> >>
> >> + /* check if the parent names are present in the device tree */
> >
> > This looks odd.
> >
> >> + ret = devm_clk_bulk_get(parent, ARRAY_SIZE(pclks), pclks);
> >> + if (ret == -EPROBE_DEFER)
> >> + return ret;
> >
> > Why can't we use of_clk_parent_fill() if we know this is always a DT
> > platform? The parent clks may not be registered at the time of probe?
>
> yes, and AFAICS the important thing at this point is that the clock is
> registered hence the handling of defer.
>
> I could use of_clk_parent_fill and then - if needed - call
> devm_clk_bulk_get but I am not sure of the gains of doing it (wouldnt
> this just make the code more confusing?)

Yeah of_clk_parent_fill() isn't the best approach. But it at least keeps
this driver from using clk consumer APIs?

>
>
> > Maybe this series should wait for the parent registration stuff I'm
> > working on so that this can be made simpler.
>
> the need for the clock name is not intrinsic to this driver (the driver
> itself doesnt use these names) but it just feeds these to the framework.
>
> I was looking into your parent registration code and I am not sure how
> can I use it in this particular driver other than simply removing the
> names and hoping that things are handled properly at the lower
> levels.... could you clarify please?
>

I think so. I've forgotten the context of this patch, but the general
idea would be to specify the parents with clock-names or DT index in the
DT node for the clks registered here and not use of_clk_parent_fill() or
do any sort of devm_clk_bulk_get() calls. Then the framework will take
care of finding the parents for the clks and hooking things up properly
for the parent-child relationship.