Re: SAA7134 - Pinnacle 3xxi support broken

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

 



On Wednesday 10 May 2006 14:16, Ondrej Zima wrote:
> Hi all,
> I'v checked out the latest source code, compiled it and my Pinnacle 300i
> stop to work.
> I'm sorry I can't tell which previous version works.
> The symptoms are, the DVB is locked but nothing is tuned - signla more
> than 60% but snr 0%.
> If I use drivers from kernel (2.6.16.12), the tuner working well.
> Is there something I must before insmod the saa7134-dvb module? (like
> previous behaviour)

Thanks for the report, looks like it is my fault. Does the attached patch fix 
it?
diff -r 38162695285b linux/drivers/media/video/saa7134/saa7134-dvb.c
--- a/linux/drivers/media/video/saa7134/saa7134-dvb.c	Tue May 09 10:15:42 2006 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c	Wed May 10 15:25:10 2006 +0100
@@ -133,9 +133,8 @@ static int mt352_aver777_init(struct dvb
 	return 0;
 }
 
-static int mt352_pinnacle_tuner_calc_regs(struct dvb_frontend* fe,
-				       struct dvb_frontend_parameters* params,
-				       u8* pllbuf, int buf_len)
+static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe,
+					   struct dvb_frontend_parameters* params)
 {
 	u8 off[] = { 0x00, 0xf1};
 	u8 on[]  = { 0x00, 0x71};
@@ -143,9 +142,6 @@ static int mt352_pinnacle_tuner_calc_reg
 
 	struct saa7134_dev *dev = fe->dvb->priv;
 	struct v4l2_frequency f;
-
-	if (buf_len < 5)
-		return -EINVAL;
 
 	/* set frequency (mt2050) */
 	f.tuner     = 0;
@@ -163,13 +159,7 @@ static int mt352_pinnacle_tuner_calc_reg
 	pinnacle_antenna_pwr(dev, antenna_pwr);
 
 	/* mt352 setup */
-	mt352_pinnacle_init(fe);
-	pllbuf[0] = 0x61;
-	pllbuf[1] = 0x00;
-	pllbuf[2] = 0x00;
-	pllbuf[3] = 0x80;
-	pllbuf[4] = 0x00;
-	return 5;
+	return mt352_pinnacle_init(fe);
 }
 
 static int mt352_aver777_tuner_calc_regs(struct dvb_frontend *fe, struct dvb_frontend_parameters *params, u8* pllbuf, int buf_len)
@@ -1026,7 +1016,7 @@ static int dvb_init(struct saa7134_dev *
 		dev->dvb.frontend = mt352_attach(&pinnacle_300i,
 						 &dev->i2c_adap);
 		if (dev->dvb.frontend) {
-			dev->dvb.frontend->ops->tuner_ops.calc_regs = mt352_pinnacle_tuner_calc_regs;
+			dev->dvb.frontend->ops->tuner_ops.set_params = mt352_pinnacle_tuner_set_params;
 		}
 		break;
 
_______________________________________________

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