Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00f6f92d authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

media: adv7511: fix incorrect clear of CEC receive interrupt



If a CEC message was received and the RX interrupt was set, but
not yet processed, and a new transmit was issues, then the
transmit code would inadvertently clear the RX interrupt and
after that no new messages would ever be received.

Instead it should only clear TX interrupts since register 0x97
is a clear-on-write register.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 73678158
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -831,8 +831,8 @@ static int adv7511_cec_adap_transmit(struct cec_adapter *adap, u8 attempts,
	 */
	adv7511_cec_write_and_or(sd, 0x12, ~0x70, max(1, attempts - 1) << 4);

	/* blocking, clear cec tx irq status */
	adv7511_wr_and_or(sd, 0x97, 0xc7, 0x38);
	/* clear cec tx irq status */
	adv7511_wr(sd, 0x97, 0x38);

	/* write data */
	for (i = 0; i < len; i++)