Hi Laurent, On Tue, Sep 4, 2018 at 2:10 PM Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> wrote: > The LVDS encoders in the D3 and E3 SoCs differ significantly from those > in the other R-Car Gen3 family members: > > - The LVDS PLL architecture is more complex and requires computing PLL > parameters manually. > - The PLL uses external clocks as inputs, which need to be retrieved > from DT. > - In addition to the different PLL setup, the startup sequence has > changed *again* (seems someone had trouble making his/her mind). > > Supporting all this requires DT bindings extensions for external clocks, > brand new PLL setup code, and a few quirks to handle the differences in > the startup sequence. > > The implementation doesn't support all hardware features yet, namely > > - Using the LV[01] clocks generated by the CPG as PLL input. > - Providing the LVDS PLL clock to the DU for use with the RGB output. > > Those features can be added later when the need will arise. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Thanks for your patch! > --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c > +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c > +static void rcar_lvds_d3_e3_pll_calc(struct rcar_lvds *lvds, struct clk *clk, > + unsigned long target, struct pll_info *pll) > +{ > +#if defined(CONFIG_DEBUG) || defined(CONFIG_DYNAMIC_DEBUG) > + { As this code has no dependencies, you can improve compile coverage: if (IS_ENABLED(...) || ...) { BTW, was CONFIG_DEBUG intended? Or just DEBUG? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds