drm/i2c: tda998x: fix bad checksum of the HDMI AVI infoframe
The commit8c7a075da9
"drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode()" also uses hdmi_avi_infoframe_pack() to create the AVI infoframe. This function sets the checksum of the frame and this breaks the second calculation of the checksum done in tda998x_write_if(). Fixes:8c7a075da9
("drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode()") Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
5296b7f9d0
commit
4a6ca1a2c2
@ -582,8 +582,6 @@ static void
|
||||
tda998x_write_if(struct tda998x_priv *priv, uint8_t bit, uint16_t addr,
|
||||
uint8_t *buf, size_t size)
|
||||
{
|
||||
buf[PB(0)] = tda998x_cksum(buf, size);
|
||||
|
||||
reg_clear(priv, REG_DIP_IF_FLAGS, bit);
|
||||
reg_write_range(priv, addr, buf, size);
|
||||
reg_set(priv, REG_DIP_IF_FLAGS, bit);
|
||||
@ -603,6 +601,8 @@ tda998x_write_aif(struct tda998x_priv *priv, struct tda998x_encoder_params *p)
|
||||
buf[PB(4)] = p->audio_frame[4];
|
||||
buf[PB(5)] = p->audio_frame[5] & 0xf8; /* DM_INH + LSV */
|
||||
|
||||
buf[PB(0)] = tda998x_cksum(buf, sizeof(buf));
|
||||
|
||||
tda998x_write_if(priv, DIP_IF_FLAGS_IF4, REG_IF4_HB0, buf,
|
||||
sizeof(buf));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user