summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/stb0899_algo.c
diff options
context:
space:
mode:
authorLutz Sammer <johns98@gmx.net>2011-10-07 16:11:37 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-10-11 18:02:57 -0300
commit39342dbb27323f174b286c9e19b9687d492b2d1a (patch)
tree41d4aa97140c5206481c83163b1410c5e977a0cb /drivers/media/dvb/frontends/stb0899_algo.c
parent06bd801c23939952bc6e1cf65f0e8c0fff09d2d7 (diff)
[media] stb0899: Fix slow and not locking DVB-S transponder(s)
In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) LOOP status bit and the search fails on a good frequency. With the patch more transponder could be locked and locks about 2* faster. Signed-off-by: Lutz Sammer<johns98@gmx.net> Reviewed-by: Manu Abraham<manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends/stb0899_algo.c')
-rw-r--r--drivers/media/dvb/frontends/stb0899_algo.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/stb0899_algo.c b/drivers/media/dvb/frontends/stb0899_algo.c
index d70eee00f33..117a56926dc 100644
--- a/drivers/media/dvb/frontends/stb0899_algo.c
+++ b/drivers/media/dvb/frontends/stb0899_algo.c
@@ -358,6 +358,9 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
else
dataTime = 500;
+ /* clear previous failed END_LOOPVIT */
+ stb0899_read_reg(state, STB0899_VSTATUS);
+
stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
while (1) {
/* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP */