A 'return' was missing when detecting Arbitration Lost and
calling transmit_done. With the return transmit_done could be
called a second time, confusing the CEC framework. Luckily
the Arbitration Lost condition is very rare.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
---
 drivers/media/i2c/adv7604.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c
index c786cd125417..1544920ec52d 100644
--- a/drivers/media/i2c/adv7604.c
+++ b/drivers/media/i2c/adv7604.c
@@ -1982,6 +1982,7 @@ static void adv76xx_cec_tx_raw_status(struct v4l2_subdev 
*sd, u8 tx_raw_status)
                         __func__);
                cec_transmit_done(state->cec_adap, CEC_TX_STATUS_ARB_LOST,
                                  1, 0, 0, 0);
+               return;
        }
        if (tx_raw_status & 0x04) {
                u8 status;
-- 
2.14.1

Reply via email to