[linux-dvb] QAM_128 with Nexus-CA/TT (stv0297-based)

Patrick Boettcher patrick.boettcher at desy.de
Fri Jun 17 09:29:48 CEST 2005


while investigating the QAM_128-issue with the stv0297-driver for the 
Cablestar (which is not the same as the one in dvb-kernel CVS, yet), I 
fixed it, not by increasing the timeout, but by disabling the 
corner-detection for QAM_128 and higher.

Could all of you, who had the problems with QAM_128, please try the 
attached patch to an unmodified stv0297 and report any successes or 

Thanks in advance,

   Mail: patrick.boettcher at desy.de
   WWW:  http://www.wi-bw.tfh-wildau.de/~pboettch/
-------------- next part --------------
Index: linux/drivers/media/dvb/frontends/stv0297.c
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/frontends/stv0297.c,v
retrieving revision 1.22
diff -u -3 -p -r1.22 stv0297.c
--- linux/drivers/media/dvb/frontends/stv0297.c	5 Apr 2005 00:30:39 -0000	1.22
+++ linux/drivers/media/dvb/frontends/stv0297.c	17 Jun 2005 07:24:26 -0000
@@ -606,7 +606,13 @@ static int stv0297_set_frontend(struct d
 	stv0297_set_inversion(state, inversion);
 	/* kick off lock */
-	stv0297_writereg_mask(state, 0x88, 0x08, 0x08);
+	/* Disable corner detection for higher QAMs */
+	if (p->u.qam.modulation == QAM_128 ||
+		p->u.qam.modulation == QAM_256)
+		stv0297_writereg_mask(state, 0x88, 0x08, 0x00);
+	else
+		stv0297_writereg_mask(state, 0x88, 0x08, 0x08);
 	stv0297_writereg_mask(state, 0x5a, 0x20, 0x00);
 	stv0297_writereg_mask(state, 0x6a, 0x01, 0x01);
 	stv0297_writereg_mask(state, 0x43, 0x40, 0x40);

More information about the linux-dvb mailing list