diff options
author | Oliver Endriss <o.endriss@gmx.de> | 2011-01-10 04:36:22 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-21 19:31:46 -0400 |
commit | 179fd15a99175e8e22516edbb1894c3348842f3a (patch) | |
tree | 69b8b82dab30904ae780ef813fefc65f34cd7f1b | |
parent | 908f668bfbe4d268462352b9227bfe4cb458feb6 (diff) |
[media] stv090x: Fix losing lock in dual DVB-S2 mode
Do not clear registers ACLC/BCLC in DVB-S2 mode for Cut <= 20.
Otherwise, the demod could lose the lock periodically.
Verified with cineS2 and Duoflex.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/dvb/frontends/stv090x.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c index eccad06216ce..e3442a14e5b2 100644 --- a/drivers/media/dvb/frontends/stv090x.c +++ b/drivers/media/dvb/frontends/stv090x.c | |||
@@ -2894,10 +2894,12 @@ static int stv090x_optimize_track(struct stv090x_state *state) | |||
2894 | STV090x_SETFIELD_Px(reg, DVBS2_ENABLE_FIELD, 1); | 2894 | STV090x_SETFIELD_Px(reg, DVBS2_ENABLE_FIELD, 1); |
2895 | if (STV090x_WRITE_DEMOD(state, DMDCFGMD, reg) < 0) | 2895 | if (STV090x_WRITE_DEMOD(state, DMDCFGMD, reg) < 0) |
2896 | goto err; | 2896 | goto err; |
2897 | if (STV090x_WRITE_DEMOD(state, ACLC, 0) < 0) | 2897 | if (state->internal->dev_ver >= 0x30) { |
2898 | goto err; | 2898 | if (STV090x_WRITE_DEMOD(state, ACLC, 0) < 0) |
2899 | if (STV090x_WRITE_DEMOD(state, BCLC, 0) < 0) | 2899 | goto err; |
2900 | goto err; | 2900 | if (STV090x_WRITE_DEMOD(state, BCLC, 0) < 0) |
2901 | goto err; | ||
2902 | } | ||
2901 | if (state->frame_len == STV090x_LONG_FRAME) { | 2903 | if (state->frame_len == STV090x_LONG_FRAME) { |
2902 | reg = STV090x_READ_DEMOD(state, DMDMODCOD); | 2904 | reg = STV090x_READ_DEMOD(state, DMDMODCOD); |
2903 | modcod = STV090x_GETFIELD_Px(reg, DEMOD_MODCOD_FIELD); | 2905 | modcod = STV090x_GETFIELD_Px(reg, DEMOD_MODCOD_FIELD); |