Commit 179fd15a authored by Oliver Endriss's avatar Oliver Endriss Committed by Mauro Carvalho Chehab

[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: default avatarOliver Endriss <o.endriss@gmx.de>
Signed-off-by: default avatarManu Abraham <manu@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 908f668b
...@@ -2894,10 +2894,12 @@ static int stv090x_optimize_track(struct stv090x_state *state) ...@@ -2894,10 +2894,12 @@ static int stv090x_optimize_track(struct stv090x_state *state)
STV090x_SETFIELD_Px(reg, DVBS2_ENABLE_FIELD, 1); STV090x_SETFIELD_Px(reg, DVBS2_ENABLE_FIELD, 1);
if (STV090x_WRITE_DEMOD(state, DMDCFGMD, reg) < 0) if (STV090x_WRITE_DEMOD(state, DMDCFGMD, reg) < 0)
goto err; goto err;
if (state->internal->dev_ver >= 0x30) {
if (STV090x_WRITE_DEMOD(state, ACLC, 0) < 0) if (STV090x_WRITE_DEMOD(state, ACLC, 0) < 0)
goto err; goto err;
if (STV090x_WRITE_DEMOD(state, BCLC, 0) < 0) if (STV090x_WRITE_DEMOD(state, BCLC, 0) < 0)
goto err; goto err;
}
if (state->frame_len == STV090x_LONG_FRAME) { if (state->frame_len == STV090x_LONG_FRAME) {
reg = STV090x_READ_DEMOD(state, DMDMODCOD); reg = STV090x_READ_DEMOD(state, DMDMODCOD);
modcod = STV090x_GETFIELD_Px(reg, DEMOD_MODCOD_FIELD); modcod = STV090x_GETFIELD_Px(reg, DEMOD_MODCOD_FIELD);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment