On Thu, Jul 25, 2019 at 10:50 PM Jerome Brunet <[email protected]> wrote:
>
> On Mon 22 Jul 2019 at 11:54, Alexandre Mergnat <[email protected]> wrote:
>
>
> > @@ -1592,13 +1737,29 @@ static struct clk_regmap gxbb_vid_pll_div = {
> >       .hw.init = &(struct clk_init_data) {
> >               .name = "vid_pll_div",
> >               .ops = &meson_vid_pll_div_ro_ops,
> > -             .parent_names = (const char *[]){ "hdmi_pll" },
> > +             .parent_data = &(const struct clk_parent_data) {
> > +                     /*
> > +                      * This clock is declared here for GXL and GXBB SoC, 
> > so
> > +                      * we must use string name to set this parent to avoid
> > +                      * pointer issue.
> > +                      */
>
> I don't really get the issue with this comment.
>
> How about:
>
> /*
>  * Note:
>  * gxl and gxbb have different hdmi_plls (with different struct clk_hw).
>  * We fallback to the global naming string mechanism so vid_pll_div picks
>  * up the appropriate one.
>  */

If you're sticking to global names for now, you could just skip converting
this clock altogether. I suspect .parent_names will be around for some time.

On the other hand, if you really want to get rid of global clock name based
parenting, you could use clk_hw pointers, and have the probe function fix
up this one based on the compatible string. That's what I did.

Just my two cents.

ChenYu

> > +                     .name = "hdmi_pll",
> > +                     .index = -1,
> > +             },
> >               .num_parents = 1,
> >               .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
> >       },
> >  };
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Reply via email to