Mailing List archive

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

[linux-dvb] mt352, site updated, diff



Hi,

I updated the version on http://www.frokaschwei.net/avtv771/avermedia.html. I 
changed Christopher Pascoe's patch because I don't want to disable the 
recovery.

Wolfram

--- mt352.c.cvs	2004-06-28 20:08:21.000000000 +0200
+++ mt352.c	2004-06-29 20:57:07.000000000 +0200
@@ -83,7 +83,7 @@
 	{
 		{
 			.addr = 0x50,
-			.flags = I2C_M_NOSTART,
+			.flags = 0,
 			.buf = &reg,
 			.len = 1
 		},
@@ -168,6 +168,7 @@
 	struct dvb_ofdm_parameters *op = &param->u.ofdm;
 	u32 freq = param->frequency / 1000;
 	uint16_t tmp;
+	unsigned char acqctl = 0x5B;	/* suggest spectral inversion on, force mode, guard, enable recovery */
 
 	switch (op->code_rate_HP) {
 		case FEC_2_3:
@@ -186,6 +187,7 @@
 		case FEC_AUTO:
 			break;
 		default:
+			printk(KERN_WARNING "mt352.c: bad code_rate_HP\n");
 			return -EINVAL;
 	}
 
@@ -204,8 +206,10 @@
 			break;
 		case FEC_1_2:
 		case FEC_AUTO:
+		case FEC_NONE:
 			break;
 		default:
+			printk(KERN_WARNING "mt352.c: bad code_rate_LP\n");
 			return -EINVAL;
 	}
 
@@ -220,23 +224,26 @@
 			tps |= (2 << 13);
 			break;
 		default:
+			printk(KERN_WARNING "mt352.c: bad constellation\n");
 			return -EINVAL;
 	}
 
 	switch (op->transmission_mode) {
 		case TRANSMISSION_MODE_2K:
-		case TRANSMISSION_MODE_AUTO:
 			break;
 		case TRANSMISSION_MODE_8K:
 			tps |= (1 << 0);
 			break;
+		case TRANSMISSION_MODE_AUTO:
+			acqctl &= ~(1 << 0);	/* unforce mode */
+			break;
 		default:
+			printk(KERN_WARNING "mt352.c: bad transmission_mode\n");
 			return -EINVAL;
 	}
 
 	switch (op->guard_interval) {
 		case GUARD_INTERVAL_1_32:
-		case GUARD_INTERVAL_AUTO:
 			break;
 		case GUARD_INTERVAL_1_16:
 			tps |= (1 << 2);
@@ -247,7 +254,11 @@
 		case GUARD_INTERVAL_1_4:
 			tps |= (3 << 2);
 			break;
+		case GUARD_INTERVAL_AUTO:
+			acqctl &= ~(1 << 1);	/* unforce guard */
+			break;
 		default:
+			printk(KERN_WARNING "mt352.c: bad guard_interval\n");
 			return -EINVAL;
 	}
 
@@ -265,6 +276,7 @@
 			tps |= (3 << 10);
 			break;
 		default:
+			printk(KERN_WARNING "mt352.c: bad hierarchy_information\n");
 			return -EINVAL;
 	}
 
@@ -274,7 +286,7 @@
 	buf[1] = msb(tps);      /* TPS_GIVEN_(1|0) */
 	buf[2] = lsb(tps);
 
-	buf[3] = 0x50;
+	buf[3] = acqctl;
 
 	/**
 	 *  these settings assume 20.48MHz f_ADC, for other tuners you might
@@ -386,7 +398,7 @@
 	u8 b0 [] = { reg };
 	u8 b1 [] = { 0 };
 	struct i2c_msg msg [] = { { .addr = I2C_MT352_ADDR,
-				    .flags = I2C_M_NOSTART,
+				    .flags = 0,
 				    .buf = b0, .len = 1 },
 				  { .addr = I2C_MT352_ADDR,
 				    .flags = I2C_M_RD,
@@ -578,7 +590,6 @@
 	case FE_GET_FRONTEND:
 		return mt352_get_parameters (i2c,
 				 (struct dvb_frontend_parameters *) arg,card_type);
-
 	case FE_GET_TUNE_SETTINGS:
 		fe_tune_settings = (struct dvb_frontend_tune_settings *) arg;
 		fe_tune_settings->min_delay_ms = 800;

Home | Main Index | Thread Index