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.