Re: [PATCH 07/13] drm/sun4i: hdmi: Don't leak sync polarity bits into packet control
Chen-Yu Tsai <[email protected]> Tue, 4 Aug 2026 01:26:12 +0800
| Newsgroups | org.infradead.lists.linux-arm-kernel,dev.linux.lists.linux-sunxi,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAGb2v67j7nGbnCCG_2XCuFOzYkBJzyqu-YJ-w6QgLY2idndhwA@mail.gmail.com> |
On Tue, Aug 4, 2026 at 12:11 AM Jernej Skrabec <[email protected]> wrote: > > sun4i_hdmi_enable() keeps using the same variable after it programmed > the video timing polarity register with it. The leftover TX_CLK, HSYNC > and VSYNC bits are then ORed into the packet control register, where > each nibble selects the packet type sent in one slot. > > As a result, slot 0 selects packet type 3 instead of the AVI infoframe > whenever the mode has positive HSYNC polarity, and the TX_CLK bits set > nibbles which the driver never programs. > > Assign the packet types instead of ORing them into the stale value. > > Fixes: 9ca6bc246035 ("drm/sun4i: hdmi: Move mode_set into enable") > Signed-off-by: Jernej Skrabec <[email protected]> Acked-by: Chen-Yu Tsai <[email protected]> > --- > drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c > index 74c7c3720ba8..a27d394d0570 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c > +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c > @@ -161,7 +161,7 @@ static void sun4i_hdmi_enable(struct drm_encoder *encoder, > > drm_atomic_helper_connector_hdmi_update_infoframes(connector, state); > > - val |= SUN4I_HDMI_PKT_CTRL_TYPE(0, SUN4I_HDMI_PKT_AVI); > + val = SUN4I_HDMI_PKT_CTRL_TYPE(0, SUN4I_HDMI_PKT_AVI); > val |= SUN4I_HDMI_PKT_CTRL_TYPE(1, SUN4I_HDMI_PKT_END); > writel(val, hdmi->base + SUN4I_HDMI_PKT_CTRL_REG(0)); > > -- > 2.43.0 > >