Hi Laurent,
On Sat, Jan 13, 2018 at 12:14 AM, Laurent Pinchart
<[email protected]> wrote:
> The LVDS encoders used to be described in DT as part of the DU. They now
> have their own DT node, linked to the DU using the OF graph bindings.
> This allows moving internal LVDS encoder support to a separate driver
> modelled as a DRM bridge. Backward compatibility is retained as legacy
> DT is patched live to move to the new bindings.
>
> Signed-off-by: Laurent Pinchart <[email protected]>
> --- /dev/null
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +static void rcar_lvds_enable(struct drm_bridge *bridge)
> +{
> + struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
> + u32 lvdhcr;
> + int ret;
> +
> + WARN_ON(lvds->enabled);
> +
> + ret = clk_prepare_enable(lvds->clock);
What about starting to use Runtime PM to manage the clock, and thus calling
pm_runtime_get_sync() here instead?
That will make the driver future-proof w.r.t. LVDS blocks in power domains.
You do need a "power-domains" property, though, which may complicate DT
runtime patching.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
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