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.endr...@gmx.de>
Signed-off-by: Manu Abraham <m...@linuxtv.org>
---
 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 57e229a..1675c2a 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)
                STV090x_SETFIELD_Px(reg, DVBS2_ENABLE_FIELD, 1);
                if (STV090x_WRITE_DEMOD(state, DMDCFGMD, reg) < 0)
                        goto err;
-               if (STV090x_WRITE_DEMOD(state, ACLC, 0) < 0)
-                       goto err;
-               if (STV090x_WRITE_DEMOD(state, BCLC, 0) < 0)
-                       goto err;
+               if (state->internal->dev_ver >= 0x30) {
+                       if (STV090x_WRITE_DEMOD(state, ACLC, 0) < 0)
+                               goto err;
+                       if (STV090x_WRITE_DEMOD(state, BCLC, 0) < 0)
+                               goto err;
+               }
                if (state->frame_len == STV090x_LONG_FRAME) {
                        reg = STV090x_READ_DEMOD(state, DMDMODCOD);
                        modcod = STV090x_GETFIELD_Px(reg, DEMOD_MODCOD_FIELD);
-- 
1.6.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to