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@xxxxxxxxxxxxx> 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@xxxxxxx> -------------- 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