Hi everybody,
I sent in the following three patches for three times now, and they are still 
not even part of the mm-tree.
The first one is a documentation fix synchronizing the current as-is-state of 
kernel compilation.
The second one makes a module called dvb-pll.c deselectable as it is completely 
absurd in the special case that you use a Pinnacle DVB-S card as the only card 
in your system.
The third one gets rid of two modules that are only needed by TwinHan DST cards 
and / or Pinnacle cards WITH CI slot. I owe a Pinnacle card without CI slot. In 
so far I defininitely DO NOT NEED those modules at all and I want so save RAM.
IN OTHER WORDS: The concept of a common backend called dvb-bt8xx.c for all 
bt8xx cards is definitely a REACTIONARY concept: Backend parts for the specific 
card should be selectable and deselectable as frontends like cx24110.c are 
selectable and deselectable at the current state of kernel development.

The first two patches do not hurt at all:
Number one (the documentation fix) helps linux rookies and beginners to get a 
clean kernel compiled without wasting time.
Number two (the dvb-pll.c one) saves RAM for two special cases:
a. the Pinnacle PCTVSAT (and maybe many many others too, which has got to be 
proven – I mentioned this fact already – in vain!) is the only one in the 
machine.
b. the Pinnacle PCTVSAT does not have a CI slot.

Number three hurts, as it wipes out support for all bt8xx cards that have a 
slot for conditional access: Examples: Pinnacle PCTVSAT CI and TwinHan DST.
BUT: If you do NOT owe a card with CI slot this third patch definitely helps 
you to save RAM! This patch hurts because I simply do not have an idea how to 
make it better so that it does not hurt. In so far I said NOT to take this up 
into vanilla, but leave it on the mailing list for users needing it. In vain!
So I simply followed two strategic lines:
a. offering clear and understandable documentation
b. offering two humble steps towards a far more progressive backend for bt8xx 
cards: ability to deselect parts of the code and thus saving RAM.
All three patches: Signed-Off-By: Uwe Bugla <[EMAIL PROTECTED]>
Functional description: please see above.

Number ONE:
--- a/Documentation/dvb/bt8xx.txt
+++ b/Documentation/dvb/bt8xx.txt
@@ -9,9 +9,15 @@
 Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx 
PCI bridge:
 
 Compiling kernel please enable:
-a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "BT848 
Video For Linux"
+a.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "Enable 
Video for Linux API 1 (DEPRECATED)"
-b.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting 
Devices"
- => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards"
+b.)"Device drivers" => "Multimedia devices" => "Video For Linux" => "Video 
Capture Adapters" => "BT848 Video For Linux"
+c.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting 
Devices"
+ => "DVB for Linux" "DVB Core Support" "Bt8xx based PCI Cards"
+
+Note: If you know the frontend driver that your specific card needs 
furthermore please enable:
+d.)"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting 
Devices"
+ => "DVB for Linux" "DVB Core Support" "Customize DVB Frontends" => "Customize 
the frontend modules to build"
+ Then you can save memory by deselecting every frontend module your specific 
card does not need.
 
 2) Loading Modules
 ==================

Number TWO:
--- a/drivers/media/dvb/bt8xx/Kconfig
+++ b/drivers/media/dvb/bt8xx/Kconfig
@@ -1,7 +1,7 @@
 config DVB_BT8XX
     tristate "BT8xx based PCI cards"
     depends on DVB_CORE && PCI && I2C && VIDEO_BT848
-    select DVB_PLL
+    select DVB_PLL if !DVB_FE_CUSTOMISE
     select DVB_MT352 if !DVB_FE_CUSTOMISE
     select DVB_SP887X if !DVB_FE_CUSTOMISE
     select DVB_NXT6000 if !DVB_FE_CUSTOMISE
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
@@ -264,8 +264,11 @@
     depends on DVB_CORE
 
 config DVB_PLL
-    tristate
+    tristate "PLL support for DVB tuners"
     depends on DVB_CORE && I2C
+    default m if !DVB_FE_CUSTOMISE
+    help
+      You can safely deselect this if you're only running a Pinnacle PCTV Sat 
DVB-S card.
 
 config DVB_TDA826X
     tristate "Philips TDA826X silicon tuner"

Number Three: (the destructive RAM saver!)
--- a/drivers/media/dvb/bt8xx/Makefile
+++ b/drivers/media/dvb/bt8xx/Makefile
@@ -1,3 +1,3 @@
-obj-$(CONFIG_DVB_BT8XX) += bt878.o dvb-bt8xx.o dst.o dst_ca.o
+obj-$(CONFIG_DVB_BT8XX) += bt878.o dvb-bt8xx.o
 
 EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/ -Idrivers/media/video/bt8xx 
-Idrivers/media/dvb/frontends
--- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -403,9 +403,6 @@
     .demod_init = advbt771_samsung_tdtc9251dh0_demod_init,
 };
 
-static struct dst_config dst_config = {
-    .demod_address = 0x55,
-};
 
 static int or51211_request_firmware(struct dvb_frontend* fe, const struct 
firmware **fw, char* name)
 {
@@ -568,34 +565,9 @@
     .demod_init = digitv_alps_tded4_demod_init,
 };
 
-static int tdvs_tua6034_tuner_set_params(struct dvb_frontend* fe, struct 
dvb_frontend_parameters* params)
-{
-    struct dvb_bt8xx_card *card = (struct dvb_bt8xx_card *) fe->dvb->priv;
-    return lg_h06xf_pll_set(fe, card->i2c_adapter, params);
-}
-
-static struct lgdt330x_config tdvs_tua6034_config = {
-    .demod_address    = 0x0e,
-    .demod_chip       = LGDT3303,
-    .serial_mpeg      = 0x40, /* TPSERIAL for 3303 in TOP_CONTROL */
-};
-
-static void lgdt330x_reset(struct dvb_bt8xx_card *bt)
-{
-    /* Set pin 27 of the lgdt3303 chip high to reset the frontend */
-
-    /* Pulse the reset line */
-    bttv_write_gpio(bt->bttv_nr, 0x00e00007, 0x00000001); /* High */
-    bttv_write_gpio(bt->bttv_nr, 0x00e00007, 0x00000000); /* Low  */
-    msleep(100);
-
-    bttv_write_gpio(bt->bttv_nr, 0x00e00007, 0x00000001); /* High */
-    msleep(100);
-}
 
 static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
 {
-    struct dst_state* state = NULL;
 
     switch(type) {
     case BTTV_BOARD_DVICO_DVBT_LITE:
@@ -612,14 +584,6 @@
         }
         break;
 
-    case BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE:
-        lgdt330x_reset(card);
-        card->fe = dvb_attach(lgdt330x_attach, &tdvs_tua6034_config, 
card->i2c_adapter);
-        if (card->fe != NULL) {
-            card->fe->ops.tuner_ops.set_params = tdvs_tua6034_tuner_set_params;
-            dprintk ("dvb_bt8xx: lgdt330x detected\n");
-        }
-        break;
 
     case BTTV_BOARD_NEBULA_DIGITV:
         /*
@@ -662,29 +626,6 @@
         }
         break;
 
-    case BTTV_BOARD_TWINHAN_DST:
-        /*    DST is not a frontend driver !!!        */
-        state = (struct dst_state *) kmalloc(sizeof (struct dst_state), 
GFP_KERNEL);
-        if (!state) {
-            printk("dvb_bt8xx: No memory\n");
-            break;
-        }
-        /*    Setup the Card                    */
-        state->config = &dst_config;
-        state->i2c = card->i2c_adapter;
-        state->bt = card->bt;
-        state->dst_ca = NULL;
-        /*    DST is not a frontend, attaching the ASIC    */
-        if (dvb_attach(dst_attach, state, &card->dvb_adapter) == NULL) {
-            printk("%s: Could not find a Twinhan DST.\n", __FUNCTION__);
-            break;
-        }
-        /*    Attach other DST peripherals if any        */
-        /*    Conditional Access device            */
-        card->fe = &state->frontend;
-        if (state->dst_hw_cap & DST_TYPE_HAS_CA)
-            dvb_attach(dst_ca_attach, state, &card->dvb_adapter);
-        break;
 
     case BTTV_BOARD_PINNACLESAT:
         card->fe = dvb_attach(cx24110_attach, &pctvsat_config, 
card->i2c_adapter);
@@ -852,23 +797,6 @@
         /* A_PWRDN DA_SBR  DA_APP[0] PKTP=10 RISC_ENABLE FIFO_ENABLE*/
         break;
 
-    case BTTV_BOARD_TWINHAN_DST:
-        card->gpio_mode = 0x2204f2c;
-        card->op_sync_orin = BT878_RISC_SYNC_MASK;
-        card->irq_err_ignore = BT878_APABORT | BT878_ARIPERR |
-                       BT878_APPERR | BT878_AFBUS;
-        /* 25,21,14,11,10,9,8,3,2 then
-         * 0x33 = 5,4,1,0
-         * A_SEL=SML, DA_MLB, DA_SBR,
-         * DA_SDR=f, fifo trigger = 32 DWORDS
-         * IOM = 0 == audio A/D
-         * DPM = 0 == digital audio mode
-         * == async data parallel port
-         * then 0x33 (13 is set by start_capture)
-         * DA_APP = async data parallel port,
-         * ACAP_EN = 1,
-         * RISC+FIFO ENABLE */
-        break;
 
     case BTTV_BOARD_PC_HDTV:
         card->gpio_mode = 0x0100EC7B;

Cheers everybody
Uwe Bugla


-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Reply via email to