The patch number 9430 was added via Manu Abraham <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel
If anyone has any objections, please let us know by sending a message to:
[EMAIL PROTECTED]
------
From: Arvo Jarve <[EMAIL PROTECTED]>
BUG! Setting CRL parameter overwrote the CR Algorithm type,
eventually leading to wrong search algorithm to be employed in
the DVB-S carrier loop optimization.
Symptom: Once the CR optimization stage is passed either way, in
a successful or failed manner, the very next carrier search will
fail, due to no Carrier Search Algorithm specified.
Signed-off-by: Arvo Jarve <[EMAIL PROTECTED]>
Signed-off-by: Manu Abraham <[EMAIL PROTECTED]>
---
linux/drivers/media/dvb/frontends/stb0899_algo.c | 25 ++++-----------
1 file changed, 7 insertions(+), 18 deletions(-)
diff -r d1eff60f0062 -r e80b117a7e00
linux/drivers/media/dvb/frontends/stb0899_algo.c
--- a/linux/drivers/media/dvb/frontends/stb0899_algo.c Thu Oct 25 20:25:23
2007 +0400
+++ b/linux/drivers/media/dvb/frontends/stb0899_algo.c Tue Oct 30 16:16:17
2007 +0400
@@ -675,7 +675,6 @@ enum stb0899_status stb0899_dvbs_algo(st
/* Set the timing loop to tracking */
stb0899_write_reg(state, STB0899_RTC, 0x33);
stb0899_write_reg(state, STB0899_CFD, 0xf7);
- reg = 0;
/* if locked and range ok, set Kdiv */
if (internal->status == RANGEOK) {
dprintk(state->verbose, FE_DEBUG, 1, "Locked & Range OK !");
@@ -686,45 +685,35 @@ enum stb0899_status stb0899_dvbs_algo(st
* Carrier loop optimization versus
* symbol Rate/Puncture Rate for Tracking
*/
+ reg = stb0899_read_reg(state, STB0899_BCLC);
switch (internal->fecrate) {
case STB0899_FEC_1_2: /* 13 */
- STB0899_SETFIELD_VAL(DEMAPVIT_KDIVIDER, reg, 0x1a);
- stb0899_write_reg(state, STB0899_DEMAPVIT, reg);
- reg = 0;
+ stb0899_write_reg(state, STB0899_DEMAPVIT, 0x1a);
STB0899_SETFIELD_VAL(BETA, reg, betaTab[0][clnI]);
stb0899_write_reg(state, STB0899_BCLC, reg);
break;
case STB0899_FEC_2_3: /* 18 */
- STB0899_SETFIELD_VAL(DEMAPVIT_KDIVIDER, reg, 44);
- stb0899_write_reg(state, STB0899_DEMAPVIT, reg);
- reg = 0;
+ stb0899_write_reg(state, STB0899_DEMAPVIT, 44);
STB0899_SETFIELD_VAL(BETA, reg, betaTab[1][clnI]);
stb0899_write_reg(state, STB0899_BCLC, reg);
break;
case STB0899_FEC_3_4: /* 21 */
- STB0899_SETFIELD_VAL(DEMAPVIT_KDIVIDER, reg, 60);
- stb0899_write_reg(state, STB0899_DEMAPVIT, reg);
- reg = 0;
+ stb0899_write_reg(state, STB0899_DEMAPVIT, 60);
STB0899_SETFIELD_VAL(BETA, reg, betaTab[2][clnI]);
stb0899_write_reg(state, STB0899_BCLC, reg);
break;
case STB0899_FEC_5_6: /* 24 */
- STB0899_SETFIELD_VAL(DEMAPVIT_KDIVIDER, reg, 75);
- stb0899_write_reg(state, STB0899_DEMAPVIT, reg);
- reg = 0;
+ stb0899_write_reg(state, STB0899_DEMAPVIT, 75);
STB0899_SETFIELD_VAL(BETA, reg, betaTab[3][clnI]);
stb0899_write_reg(state, STB0899_BCLC, reg);
break;
case STB0899_FEC_6_7: /* 25 */
- STB0899_SETFIELD_VAL(DEMAPVIT_KDIVIDER, reg, 88);
- stb0899_write_reg(state, STB0899_DEMAPVIT, reg);
+ stb0899_write_reg(state, STB0899_DEMAPVIT, 88);
stb0899_write_reg(state, STB0899_ACLC, 0x88);
stb0899_write_reg(state, STB0899_BCLC, 0x9a);
break;
case STB0899_FEC_7_8: /* 26 */
- STB0899_SETFIELD_VAL(DEMAPVIT_KDIVIDER, reg, 94);
- stb0899_write_reg(state, STB0899_DEMAPVIT, reg);
- reg = 0;
+ stb0899_write_reg(state, STB0899_DEMAPVIT, 94);
STB0899_SETFIELD_VAL(BETA, reg, betaTab[4][clnI]);
stb0899_write_reg(state, STB0899_BCLC, reg);
break;
---
Patch is available at:
http://linuxtv.org/hg/v4l-dvb/rev/e80b117a7e00acb75dea54f78cd8e1b3698036b9
_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits