summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2008-06-21 19:32:41 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-06-26 15:58:58 -0300
commit836c28584d4629fdc85365f083b84e1298e14312 (patch)
tree53ce643c9d47e84dd8018cd342add02cd48dcd2a
parent7fa8e6fa1519194fc0c931f40d530fb55137bad9 (diff)
downloadkernel-crypto-836c28584d4629fdc85365f083b84e1298e14312.tar.gz
kernel-crypto-836c28584d4629fdc85365f083b84e1298e14312.tar.xz
kernel-crypto-836c28584d4629fdc85365f083b84e1298e14312.zip
V4L/DVB (8096): au8522: prevent false-positive lock status
This decreases scan time in Queens, New York from 28 minutes to 7 minutes, with the exact same services found. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/dvb/frontends/au8522.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/au8522.c b/drivers/media/dvb/frontends/au8522.c
index 978a287b751..03900d241a7 100644
--- a/drivers/media/dvb/frontends/au8522.c
+++ b/drivers/media/dvb/frontends/au8522.c
@@ -527,10 +527,8 @@ static int au8522_read_status(struct dvb_frontend *fe, fe_status_t *status)
if (state->current_modulation == VSB_8) {
dprintk("%s() Checking VSB_8\n", __func__);
reg = au8522_readreg(state, 0x4088);
- if (reg & 0x01)
- *status |= FE_HAS_VITERBI;
- if (reg & 0x02)
- *status |= FE_HAS_LOCK | FE_HAS_SYNC;
+ if ((reg & 0x03) == 0x03)
+ *status |= FE_HAS_LOCK | FE_HAS_SYNC | FE_HAS_VITERBI;
} else {
dprintk("%s() Checking QAM\n", __func__);
reg = au8522_readreg(state, 0x4541);