media: mb86a16: be more resilient if I2C fails on sync
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 1 Nov 2017 21:06:02 +0000 (17:06 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 11 Dec 2017 18:04:53 +0000 (13:04 -0500)
If the I2C read fails while check for sync, there's no point
on doing adjusting the tuner due to a random value that might
be at VIRM var. So, set VIRM to zero, as that makes the caller
for check_sync() to return an error.

Fix those smatch warnings:
drivers/media/dvb-frontends/mb86a16.c:1460 mb86a16_set_fe() error: uninitialized symbol 'VIRM'.
drivers/media/dvb-frontends/mb86a16.c:1461 mb86a16_set_fe() error: uninitialized symbol 'VIRM'.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-frontends/mb86a16.c

index dfe322eccaa1a257d64663fa32191005ff74af5a..f1aad52094c3d82a3327e99ee49fe459025d8a7b 100644 (file)
@@ -635,6 +635,7 @@ static int sync_chk(struct mb86a16_state *state,
        return sync;
 err:
        dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error");
+       *VIRM = 0;
        return -EREMOTEIO;
 
 }