From: Jemma Denson Date: Sun, 28 Feb 2016 18:29:50 +0000 (-0300) Subject: [media] cx24120: make sure tuner is locked at get_frontend X-Git-Tag: v4.14-rc1~3648^2^2~23 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=035cad576d4e8c472a97b8913f92f73c93205fd3;p=platform%2Fkernel%2Flinux-rpi.git [media] cx24120: make sure tuner is locked at get_frontend Change get_frontend to re-check current lock status rather than relying on a cached value from get_status. Removes potential for tuning failure if get_frontend is called during tuning. Probably not too essential as other changes work around this: https://patchwork.linuxtv.org/patch/32845/ Signed-off-by: Jemma Denson Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb-frontends/cx24120.c b/drivers/media/dvb-frontends/cx24120.c index 6ccbd86..066ee38 100644 --- a/drivers/media/dvb-frontends/cx24120.c +++ b/drivers/media/dvb-frontends/cx24120.c @@ -1507,11 +1507,13 @@ static int cx24120_get_frontend(struct dvb_frontend *fe, { struct cx24120_state *state = fe->demodulator_priv; u8 freq1, freq2, freq3; + int status; dev_dbg(&state->i2c->dev, "\n"); /* don't return empty data if we're not tuned in */ - if ((state->fe_status & FE_HAS_LOCK) == 0) + status = cx24120_readreg(state, CX24120_REG_STATUS); + if (!(status & CX24120_HAS_LOCK)) return 0; /* Get frequency */