On Fri, 7 May 2021 at 16:05, Maxime Ripard <maxime@xxxxxxxxxx> wrote: > > Since we fixed the hooks to disable the encoder at boot, we now have an > unbalanced clk_disable call at boot since we never enabled them in the > first place. > > Let's mimic the state of the hardware and enable the clocks at boot if > the controller is enabled to get the use-count right. > > Cc: <stable@xxxxxxxxxxxxxxx> # v5.10+ > Fixes: 09c438139b8f ("drm/vc4: hdmi: Implement finer-grained hooks") > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> Reviewed-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/vc4/vc4_hdmi.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c > index 1fda574579af..9c919472ae84 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -1995,6 +1995,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) > if (vc4_hdmi->variant->reset) > vc4_hdmi->variant->reset(vc4_hdmi); > > + if ((of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi0") || > + of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi1")) && > + HDMI_READ(HDMI_VID_CTL) & VC4_HD_VID_CTL_ENABLE) { > + clk_prepare_enable(vc4_hdmi->pixel_clock); > + clk_prepare_enable(vc4_hdmi->hsm_clock); > + clk_prepare_enable(vc4_hdmi->pixel_bvb_clock); > + } > + > pm_runtime_enable(dev); > > drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS); > -- > 2.31.1 >