[PATCH] S2 cx24116: Above 30000 kSym/s symbol rates patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Steven,
Please apply this patch

Above 30000 kSym/s symbol rates patch
Tested on 44948 transponders (Express AM2)

Igor M. Liplianin
# HG changeset patch
# User Igor M. Liplianin <liplianin@xxxxx>
# Date 1220977349 -10800
# Node ID c16df309144fe4971cbdbb1e6fb67eb6df0ec727
# Parent  49c174f134f86203f892857b33832c2ff8bd850a
cx24116: Fix lock for high (above 30000 kSyms) symbol rates

From: Igor M. Liplianin <liplianin@xxxxx>

cx24116: Fix lock for high (above 30000 kSyms) symbol rates

Signed-off-by: Igor M. Liplianin <liplianin@xxxxx>

diff -r 49c174f134f8 -r c16df309144f linux/drivers/media/dvb/frontends/cx24116.c
--- a/linux/drivers/media/dvb/frontends/cx24116.c	Tue Sep 09 17:29:43 2008 +0300
+++ b/linux/drivers/media/dvb/frontends/cx24116.c	Tue Sep 09 19:22:29 2008 +0300
@@ -29,6 +29,11 @@
  * August
  *	Sync with legacy version.
  *	Some clean ups.
+ */
+/* Updates by Igor Liplianin
+ *
+ * September, 9th 2008
+ *	Fixed locking on high symbol rates (>30000).
  */
 
 #include <linux/slab.h>
@@ -809,7 +814,7 @@
 	struct tv_frontend_properties *c = &fe->tv_property_cache;
 	struct cx24116_cmd cmd;
 	fe_status_t tunerstat;
-	int ret;
+	int ret, above30msps;
 	u8 retune=4;
 
 	dprintk("%s()\n",__func__);
@@ -839,6 +844,16 @@
 	if (state->config->set_ts_params)
 		state->config->set_ts_params(fe, 0);
 
+	above30msps = (state->dcur.symbol_rate > 30000000);
+
+	if (above30msps){
+		cx24116_writereg(state, 0xF9, 0x01);
+		cx24116_writereg(state, 0xF3, 0x44);
+	} else {	
+		cx24116_writereg(state, 0xF9, 0x00);
+		cx24116_writereg(state, 0xF3, 0x46);
+	}
+
 	/* Prepare a tune request */
 	cmd.args[0x00] = CMD_TUNEREQUEST;
 
@@ -866,11 +881,21 @@
 	cmd.args[0x0b] = 0x00;
 	cmd.args[0x0c] = 0x02;
 	cmd.args[0x0d] = state->dcur.fec_mask;
-	cmd.args[0x0e] = 0x06;
-	cmd.args[0x0f] = 0x00;
-	cmd.args[0x10] = 0x00;
-	cmd.args[0x11] = 0xFA;
-	cmd.args[0x12] = 0x24;
+
+	if (above30msps){
+		cmd.args[0x0e] = 0x04;
+		cmd.args[0x0f] = 0x00;
+		cmd.args[0x10] = 0x01;
+		cmd.args[0x11] = 0x77;
+		cmd.args[0x12] = 0x36;
+	} else {
+		cmd.args[0x0e] = 0x06;
+		cmd.args[0x0f] = 0x00;
+		cmd.args[0x10] = 0x00;
+		cmd.args[0x11] = 0xFA;
+		cmd.args[0x12] = 0x24;
+	}
+
 	cmd.len= 0x13;
 
 	/* We need to support pilot and non-pilot tuning in the
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux