[linux-dvb] Re: [PATCH] FusionHDTV 5 Gold card --> fix v4l compile against 2.6.13 (NOT YET)

Michael Krufky mkrufky at m1k.net
Thu Aug 11 02:30:58 CEST 2005


Mac Michaels wrote:
> This pair of patches addresses valid objections to 
> experimental code used to mute the tda9887 when the tuner 
> is used for digital TV reception. That code is removed and 
> replaced by a better solution.
> 
> Attached are patches for dvb-kernel CVS and video4linux CVS.
> Signed-off-by Mac Michaels <wmichaels1 at earthlink.net>

Please, don't anybody apply this yet.... The dvb-kernel portion of this 
patch looks like it can be applied without hurting anything, however, in 
the video4linux portion of this patch, Mac has removed the backwards 
compatibility of cx88-dvb with the older version of lgdt330x.  The rest 
of the video4linux stuff looks okay to me.

Yes, newer lgdt330x code has already made it to Linus' -git tree, 
however, Mauro and I have decided not to update cx88-dvb.c within cvs 
until the next -rc is released.  However, if you use the tree-merging 
scripts, you WILL be using the latest code, except for Mac's patch here. 
  *I* am using the latest -git kernel (2.6.13-rc6-git2), but Mauro, and 
possibly others, are working with 2.6.13-rc6.

Currently, video4linux cvs is compatible with the latest -mm kernel and 
the latest -rc kernel.  It is NOT compatible right now with the latest 
-git kernel, (without using tree-merging scripts) due to some #ifdef's 
... We wish to keep it this way until the next -rc kernel comes out, or 
2.6.13 mainline.  In the meantime, I might apply this patch and test it 
here for myself...  If it works, (which I dont doubt that it will), and 
*if* I get around to it, I'll re-patch this again by hand (not fun), and 
respond to this email with a patch that doesnt break the backwards 
compatibility.

Mac- If you had run scripts/unmerge-trees.sh before generating the 
patch, this would have been a non-issue.

I have a patch sitting here waiting to be committed once we see 
2.6.13-rc7 or 2.6.13-mainline.  The patch fixes compile against 2.6.13, 
and removes backwards compatibility with old lgdt330x code from 
cx88-dvb.c, and it adjusts the tree-merging scripts to handle this 
change.  I will attach this patch to this email, for the convenience of 
those wishing to build cvs against -git.

I repeat, we are waiting for either 2.6.13-rc7 or 2.6.13 mainline before 
we apply the attached patch.

Signed-off-by: Michael Krufky <mkrufky at m1k.net>


-------------- next part --------------
diff -upr video4linux.orig/cx88-dvb.c video4linux/cx88-dvb.c
--- video4linux.orig/cx88-dvb.c	2005-08-08 20:35:00.000000000 +0000
+++ video4linux/cx88-dvb.c	2005-08-08 20:38:29.000000000 +0000
@@ -216,7 +216,6 @@ static struct or51132_config pchdtv_hd30
 #endif
 
 #ifdef HAVE_LGDT330X
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
 static int lgdt330x_pll_set(struct dvb_frontend* fe,
 			    struct dvb_frontend_parameters* params)
 {
@@ -251,18 +250,6 @@ static int lgdt330x_pll_set(struct dvb_f
 	}
 	return 0;
 }
-#else
-static int lgdt330x_pll_set(struct dvb_frontend* fe,
-			    struct dvb_frontend_parameters* params, u8* pllbuf)
-{
-	struct cx8802_dev *dev= fe->dvb->priv;
-
-	pllbuf[0] = dev->core->pll_addr;
-	dvb_pll_configure(dev->core->pll_desc, &pllbuf[1],
-			  params->frequency, 0);
-	return 0;
-}
-#endif
 
 static int lgdt330x_pll_rf_set(struct dvb_frontend* fe, int index)
 {
@@ -289,7 +276,6 @@ static int lgdt330x_set_ts_param(struct 
 
 static struct lgdt330x_config fusionhdtv_3_gold = {
 	.demod_address    = 0x0e,
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
 	.demod_chip       = LGDT3302,
 	.serial_mpeg      = 0x04, /* TPSERIAL for 3302 in TOP_CONTROL */
 	.pll_set          = lgdt330x_pll_set,
@@ -300,7 +286,6 @@ static struct lgdt330x_config fusionhdtv
 	.demod_address    = 0x0e,
 	.demod_chip       = LGDT3303,
 	.serial_mpeg      = 0x40, /* TPSERIAL for 3303 in TOP_CONTROL */
-#endif
 	.pll_set          = lgdt330x_pll_set,
 	.set_ts_params    = lgdt330x_set_ts_param,
 };
@@ -389,7 +374,6 @@ static int dvb_register(struct cx8802_de
 						    &dev->core->i2c_adap);
 		}
 		break;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
 	case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD:
 		dev->ts_gen_cntrl = 0x08;
 		{
@@ -407,7 +391,6 @@ static int dvb_register(struct cx8802_de
 		}
 		break;
 #endif
-#endif
 	default:
 		printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
 		       dev->core->name);
diff -upr video4linux.orig/scripts/merge-trees.sh video4linux/scripts/merge-trees.sh
--- video4linux.orig/scripts/merge-trees.sh	2005-08-08 20:35:00.000000000 +0000
+++ video4linux/scripts/merge-trees.sh	2005-08-08 20:41:04.000000000 +0000
@@ -70,33 +70,6 @@ diff -upr video4linux.orig/cx88-dvb.c vi
  #include "cx88.h"
  #include "dvb-pll.h"
  
-@@ -216,7 +212,7 @@ static struct or51132_config pchdtv_hd30
- #endif
- 
- #ifdef HAVE_LGDT330X
--#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
-+#if 1
- static int lgdt330x_pll_set(struct dvb_frontend* fe,
- 			    struct dvb_frontend_parameters* params)
- {
-@@ -289,7 +285,7 @@ static int lgdt330x_set_ts_param(struct 
- 
- static struct lgdt330x_config fusionhdtv_3_gold = {
- 	.demod_address    = 0x0e,
--#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
-+#if 1
- 	.demod_chip       = LGDT3302,
- 	.serial_mpeg      = 0x04, /* TPSERIAL for 3302 in TOP_CONTROL */
- 	.pll_set          = lgdt330x_pll_set,
-@@ -389,7 +385,7 @@ static int dvb_register(struct cx8802_de
- 						    &dev->core->i2c_adap);
- 		}
- 		break;
--#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
-+#if 1
- 	case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD:
- 		dev->ts_gen_cntrl = 0x08;
- 		{
 diff -upr video4linux.orig/saa7134-dvb.c video4linux/saa7134-dvb.c
 --- video4linux.orig/saa7134-dvb.c	2005-07-29 21:40:53.000000000 +0000
 +++ video4linux/saa7134-dvb.c	2005-07-29 21:41:59.000000000 +0000
diff -upr video4linux.orig/scripts/unmerge-trees.sh video4linux/scripts/unmerge-trees.sh
--- video4linux.orig/scripts/unmerge-trees.sh	2005-08-08 20:35:00.000000000 +0000
+++ video4linux/scripts/unmerge-trees.sh	2005-08-08 20:41:35.000000000 +0000
@@ -70,33 +70,6 @@ diff -upr video4linux/cx88-dvb.c video4l
  #include "cx88.h"
  #include "dvb-pll.h"
  
-@@ -212,7 +216,7 @@ static struct or51132_config pchdtv_hd30
- #endif
- 
- #ifdef HAVE_LGDT330X
--#if 1
-+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- static int lgdt330x_pll_set(struct dvb_frontend* fe,
- 			    struct dvb_frontend_parameters* params)
- {
-@@ -285,7 +289,7 @@ static int lgdt330x_set_ts_param(struct 
- 
- static struct lgdt330x_config fusionhdtv_3_gold = {
- 	.demod_address    = 0x0e,
--#if 1
-+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- 	.demod_chip       = LGDT3302,
- 	.serial_mpeg      = 0x04, /* TPSERIAL for 3302 in TOP_CONTROL */
- 	.pll_set          = lgdt330x_pll_set,
-@@ -385,7 +389,7 @@ static int dvb_register(struct cx8802_de
- 						    &dev->core->i2c_adap);
- 		}
- 		break;
--#if 1
-+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- 	case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD:
- 		dev->ts_gen_cntrl = 0x08;
- 		{
 diff -upr video4linux/saa7134-dvb.c video4linux.orig/saa7134-dvb.c
 --- video4linux/saa7134-dvb.c	2005-07-29 21:44:41.000000000 +0000
 +++ video4linux.orig/saa7134-dvb.c	2005-07-29 21:44:31.000000000 +0000


More information about the linux-dvb mailing list