Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm/hdmi: Fix wrong CTRL1 register used in writing info frames

Commit 384d2b03d0a1 ("drm/msm/hdmi: make use of the drm_connector_hdmi
framework") changed the unconditional register writes in few places to
updates: read, apply mask, write. The new code reads
REG_HDMI_INFOFRAME_CTRL1 register, applies fields/mask for
HDMI_INFOFRAME_CTRL0 register and finally writes to
HDMI_INFOFRAME_CTRL0. This difference between CTRL1 and CTRL0 looks
unintended and may result in wrong data being written to HDMI bridge
registers.

Cc: <stable@vger.kernel.org>
Fixes: 384d2b03d0a1 ("drm/msm/hdmi: make use of the drm_connector_hdmi framework")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/711156/
Link: https://lore.kernel.org/r/20260311191620.245394-2-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>

authored by

Krzysztof Kozlowski and committed by
Dmitry Baryshkov
8c6c93b7 fdbc6391

+2 -2
+2 -2
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c
··· 80 80 for (i = 0; i < ARRAY_SIZE(buf); i++) 81 81 hdmi_write(hdmi, REG_HDMI_AVI_INFO(i), buf[i]); 82 82 83 - val = hdmi_read(hdmi, REG_HDMI_INFOFRAME_CTRL1); 83 + val = hdmi_read(hdmi, REG_HDMI_INFOFRAME_CTRL0); 84 84 val |= HDMI_INFOFRAME_CTRL0_AVI_SEND | 85 85 HDMI_INFOFRAME_CTRL0_AVI_CONT; 86 86 hdmi_write(hdmi, REG_HDMI_INFOFRAME_CTRL0, val); ··· 116 116 buffer[9] << 16 | 117 117 buffer[10] << 24); 118 118 119 - val = hdmi_read(hdmi, REG_HDMI_INFOFRAME_CTRL1); 119 + val = hdmi_read(hdmi, REG_HDMI_INFOFRAME_CTRL0); 120 120 val |= HDMI_INFOFRAME_CTRL0_AUDIO_INFO_SEND | 121 121 HDMI_INFOFRAME_CTRL0_AUDIO_INFO_CONT | 122 122 HDMI_INFOFRAME_CTRL0_AUDIO_INFO_SOURCE |