Re: [PATCH v3 1/3] drm/vc4: hdmi: power down the BCM2712 PHY when the output is disabled

From: Dave Stevenson

Date: Wed Oct 28 2026 - 14:56:34 EST


On Mon, 26 Oct 2026 at 16:40, Lucas Tanure <lucas.tanure@xxxxxxx> wrote:
>
> From: Dom Cobley <popcornmix@xxxxxxxxx>
>
> vc6_hdmi_phy_disable() is empty, so on BCM2712 the PHY keeps its PLL
> and TMDS drivers running after the HDMI output is disabled, until the
> next vc6_hdmi_phy_init(). The TMDS clock is therefore not stopped
> between two mode sets, which the SCDC clock ratio change requires, and
> the idle PHY wastes power.
>
> Reset and power down the PHY on disable, as the BCM2711 variant does.
>
> Fixes: 0b1dbe82e051 ("drm/vc4: hdmi: Add support for BCM2712 HDMI controllers")
> Signed-off-by: Dom Cobley <popcornmix@xxxxxxxxx>
> [lucas.tanure: Rewrote commit message to clarify the issue and fix]
> Signed-off-by: Lucas Tanure <lucas.tanure@xxxxxxx>

Reviewed-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx>

> ---
> drivers/gpu/drm/vc4/vc4_hdmi_phy.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_phy.c b/drivers/gpu/drm/vc4/vc4_hdmi_phy.c
> index 56e6a35da357..5040f014bf7e 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi_phy.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi_phy.c
> @@ -1197,4 +1197,9 @@ void vc6_hdmi_phy_init(struct vc4_hdmi *vc4_hdmi,
>
> void vc6_hdmi_phy_disable(struct vc4_hdmi *vc4_hdmi)
> {
> + unsigned long flags;
> +
> + spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
> + vc6_hdmi_reset_phy(vc4_hdmi);
> + spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
> }
> --
> 2.56.0
>