Mailing List archive

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

[linux-dvb] Re: AirStar2 and VHF



On Thursday 11 Nov 2004 16:23, Peter Siering wrote:
> On Thu, 2004-11-11 at 16:46, Andrew de Quincey wrote:
> > You say you have an avermedia 771 - can you tell me what is printed on
> > the tin box? Currently I don't know for sure.
>
> graved: Samsung JDB0202
> sticker on tin box (as far as I can read it, it's not the only one ;-))
> Samsung
> tdtc925 tdh01c
> 040428 jbt.

Oho, cool, thats the same tuner as in the skystar2 card. Theoretically if I 
nab the code from the 771 and paste it into the skystar2 stuff, VHS should 
start working.. patch attached. Lemme know if it works
Index: skystar2.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c,v
retrieving revision 1.48
diff -a -u -r1.48 skystar2.c
--- skystar2.c	9 Nov 2004 08:20:34 -0000	1.48
+++ skystar2.c	11 Nov 2004 17:41:00 -0000
@@ -2348,18 +2348,35 @@
 {
 	u32 div;
 	unsigned char bs = 0;
+	unsigned char cp = 0;
 
 	#define IF_FREQUENCYx6 217    /* 6 * 36.16666666667MHz */
 	div = (((params->frequency + 83333) * 3) / 500000) + IF_FREQUENCYx6;
 
-	if (params->frequency >= 48000000 && params->frequency <= 154000000) bs = 0x09;
-	if (params->frequency >= 161000000 && params->frequency <= 439000000) bs = 0x0a;
-	if (params->frequency >= 447000000 && params->frequency <= 863000000) bs = 0x08;
+	if (params->frequency < 150000000) cp = 0xB4;
+	else if (params->frequency < 173000000) cp = 0xBC;
+	else if (params->frequency < 250000000) cp = 0xB4;
+	else if (params->frequency < 400000000) cp = 0xBC;
+	else if (params->frequency < 420000000) cp = 0xF4;
+	else if (params->frequency < 470000000) cp = 0xFC;
+	else if (params->frequency < 600000000) cp = 0xBC;
+	else if (params->frequency < 730000000) cp = 0xF4;
+	else cp = 0xFC;
+
+	if (params->frequency < 150000000) bs = 0x01;
+	else if (params->frequency < 173000000) bs = 0x01;
+	else if (params->frequency < 250000000) bs = 0x02;
+	else if (params->frequency < 400000000) bs = 0x02;
+	else if (params->frequency < 420000000) bs = 0x02;
+	else if (params->frequency < 470000000) bs = 0x02;
+	else if (params->frequency < 600000000) bs = 0x08;
+	else if (params->frequency < 730000000) bs = 0x08;
+	else bs = 0x08;
 
 	pllbuf[0] = 0xc2; // Note: non-linux standard PLL i2c address
 	pllbuf[1] = div >> 8;
    	pllbuf[2] = div & 0xff;
-   	pllbuf[3] = 0xcc;
+   	pllbuf[3] = cp;
    	pllbuf[4] = bs;
 
 	return 0;

Home | Main Index | Thread Index