<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
Suggestion:<br>
<br>
If the patch adds value without breaking anything, include it.<br>
<br>
Even if it's "ugly", you can easily clean it up later and "do it the
right way" (tm).<br>
Providing you find time and cleaning it up is more important than
something useful.<br>
I counted about 35 lines of actual logic in the patch, and I think
that's really about 20-25<br>
if you ignore repetitions.<br>
<br>
If there's a better way of coding it that someone (Markus? Michael?)
can think of in 5 minutes,<br>
please let Uwe know, since I imagine he could fix it in about 5 minutes
with<br>
his mind still fresh on the topic. Otherwise I suggest putting "clean
up" somewhere<br>
low on the to-do list and moving on.<br>
<br>
Regards,<br>
Bill<br>
<br>
Uwe Bugla wrote:
<blockquote cite="mid:200706012041.25359.uwe.bugla@gmx.de" type="cite">
  <pre wrap="">Am Freitag, 1. Juni 2007 20:13 schrieben Sie:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Uwe Bugla wrote:
    </pre>
    <blockquote type="cite">
      <pre wrap="">In current kernel 2.6.22-rc3 the frontend module dvb-pll.c is attached as
a generic standard for all bt8xx-based DVB cards. This is no good
solution.

Fact is:
The only bt8xx-based card taking advantage of that pll library is the
DViCO FusionHDTV Lite 5. All other bt8xx-based DVB cards do not take any
advantage of this pll library.

The following patch corrects this problem without breaking any card
support. For further SOBs I do appreciate the relevant persons Cced.

Signed-off-by: Uwe Bugla <a class="moz-txt-link-rfc2396E" href="mailto:uwe.bugla@gmx.de">&lt;uwe.bugla@gmx.de&gt;</a>
      </pre>
    </blockquote>
    <pre wrap="">NACK.

This hack is unacceptable.  Uwe, Please have patience 
    </pre>
  </blockquote>
  <pre wrap=""><!---->
In fact I had enough patience, for a couple of months now.
Even if you do not like it, it is a functionable compromise solution for now.

There is no technical reason to nack it at all. If there is one, then it's 
either a personal issue or a matter of design.
The fact that you reacted so quickly prefares option 1 (i. e. personal issue).

And the tactical background of telling some other person to wait (or to be 
patient) without offering an adequate time window for the WHEN is a gesture 
of humiliation (I know that gesture already very well from Manu, and I do not 
like it at all).

Above that you were not the only one I was asking for a SOB. I only wanted to 
try fair play (i. e. not overstepping anybody).

Regards

Uwe

P. S.: To let somebody starve at the long arm: Ever heard what that means, 
Mike? In fact I am not keen on flames, but I know people who provoke them by 
their inacceptable gestures. And that's it what must become past in here.

The other people reading this I would appreciate to test the two patches and 
complain if I have done anything wrong. My door stays open for real technical 
criticism.
Thanks for reading :)

  </pre>
  <blockquote type="cite">
    <pre wrap="">-- I have a few ideas 
on how to do this without using #ifdef's , but I am spending my time on
other things right now.  Trent also had some ideas on how remove the static
dependencies on dvb-pll, but we all have bigger fish to fry.

For the time being, you should use this on your own kernel configuration,
but this is not correct, and should not be pushed into mainline.

Regards,

Mike Krufky

    </pre>
    <blockquote type="cite">
      <pre wrap="">--- a/drivers/media/dvb/bt8xx/Kconfig
+++ b/drivers/media/dvb/bt8xx/Kconfig
@@ -7,7 +7,6 @@ config DVB_BT8XX
         select DVB_CX24110 if !DVB_FE_CUSTOMISE
         select DVB_OR51211 if !DVB_FE_CUSTOMISE
         select DVB_LGDT330X if !DVB_FE_CUSTOMISE
-        select DVB_PLL
         select DVB_ZL10353 if !DVB_FE_CUSTOMISE
         select DVB_DST if !DVB_FE_CUSTOMISE
         select FW_LOADER
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
@@ -279,6 +279,7 @@ config DVB_LGDT330X
         tristate "LG Electronics LGDT3302/LGDT3303 based"
         depends on DVB_CORE &amp;&amp; I2C
         default m if DVB_FE_CUSTOMISE
+        select DVB_PLL
         help
           An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
           to support this frontend.
@@ -291,8 +292,9 @@
         depends on DVB_CORE &amp;&amp; I2C
         default m if DVB_FE_CUSTOMISE
         help
-          This module driver a number of tuners based on PLL chips with a
-          common I2C interface. Say Y when you want to support these tuners.
+          This module driver is needed by a number of tuners based on PLL chips
+          with a common I2C inferface.
+          Exceptions are: All bt8xx-based DVB cards except DViCO FusionHDTV 5
Lite.

 config DVB_TDA826X
         tristate "Philips TDA826X silicon tuner"
--- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -568,24 +568,6 @@ static struct lgdt330x_config
         .demod_init = digitv_alps_tded4_demod_init,
 };

-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-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
-        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000000); /* Low  */
-        msleep(100);
-
-        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
-        msleep(100);
-}

 static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
 {
@@ -606,15 +588,39 @@ case BTTV_BOARD_DVICO
                 }
                 break;

+#if defined(CONFIG_DVB_LGDT330x)
+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-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
+        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000000); /* Low  */
+        msleep(100);
+
+        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
+        msleep(100);
+}
+
         case BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE:
                 lgdt330x_reset(card);
                 card-&gt;fe = dvb_attach(lgdt330x_attach, &amp;tdvs_tua6034_config,
card-&gt;i2c_adapter); if (card-&gt;fe != NULL) {
                         dvb_attach(dvb_pll_attach, card-&gt;fe, 0x61,
                                    card-&gt;i2c_adapter, &amp;dvb_pll_lg_tdvs_h06xf);
                         dprintk ("dvb_bt8xx: lgdt330x detected\n");
                 }
                 break;
+#else
+ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
+ return NULL;
+#endif // CONFIG_DVB_LGDT330x //

         case BTTV_BOARD_NEBULA_DIGITV:
                 /*



------------------------------------------------------------------------

--- a/drivers/media/dvb/bt8xx/Kconfig
+++ b/drivers/media/dvb/bt8xx/Kconfig
@@ -7,7 +7,6 @@ config DVB_BT8XX
         select DVB_CX24110 if !DVB_FE_CUSTOMISE
         select DVB_OR51211 if !DVB_FE_CUSTOMISE
         select DVB_LGDT330X if !DVB_FE_CUSTOMISE
-        select DVB_PLL
         select DVB_ZL10353 if !DVB_FE_CUSTOMISE
         select DVB_DST if !DVB_FE_CUSTOMISE
         select FW_LOADER
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
@@ -279,6 +279,7 @@ config DVB_LGDT330X
         tristate "LG Electronics LGDT3302/LGDT3303 based"
         depends on DVB_CORE &amp;&amp; I2C
         default m if DVB_FE_CUSTOMISE
+        select DVB_PLL
         help
           An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
           to support this frontend.
@@ -291,8 +292,9 @@
         depends on DVB_CORE &amp;&amp; I2C
         default m if DVB_FE_CUSTOMISE
         help
-          This module driver a number of tuners based on PLL chips with a
-          common I2C interface. Say Y when you want to support these tuners.
+          This module driver is needed by a number of tuners based on PLL chips
+          with a common I2C inferface.
+          Exceptions are: All bt8xx-based DVB cards except DViCO FusionHDTV 5
Lite.

 config DVB_TDA826X
         tristate "Philips TDA826X silicon tuner"
--- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -568,24 +568,6 @@ static struct lgdt330x_config
         .demod_init = digitv_alps_tded4_demod_init,
 };

-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-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
-        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000000); /* Low  */
-        msleep(100);
-
-        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
-        msleep(100);
-}

 static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
 {
@@ -606,15 +588,39 @@ case BTTV_BOARD_DVICO
                 }
                 break;

+#if defined(CONFIG_DVB_LGDT330x)
+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-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
+        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000000); /* Low  */
+        msleep(100);
+
+        bttv_write_gpio(bt-&gt;bttv_nr, 0x00e00007, 0x00000001); /* High */
+        msleep(100);
+}
+
         case BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE:
                 lgdt330x_reset(card);
                 card-&gt;fe = dvb_attach(lgdt330x_attach, &amp;tdvs_tua6034_config,
card-&gt;i2c_adapter); if (card-&gt;fe != NULL) {
                         dvb_attach(dvb_pll_attach, card-&gt;fe, 0x61,
                                    card-&gt;i2c_adapter, &amp;dvb_pll_lg_tdvs_h06xf);
                         dprintk ("dvb_bt8xx: lgdt330x detected\n");
                 }
                 break;
+#else
+ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
+ return NULL;
+#endif // CONFIG_DVB_LGDT330x //

         case BTTV_BOARD_NEBULA_DIGITV:
                 /*


------------------------------------------------------------------------

_______________________________________________
linux-dvb mailing list
<a class="moz-txt-link-abbreviated" href="mailto:linux-dvb@linuxtv.org">linux-dvb@linuxtv.org</a>
<a class="moz-txt-link-freetext" href="http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb">http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb</a>
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=""><!---->
_______________________________________________
linux-dvb mailing list
<a class="moz-txt-link-abbreviated" href="mailto:linux-dvb@linuxtv.org">linux-dvb@linuxtv.org</a>
<a class="moz-txt-link-freetext" href="http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb">http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb</a>



  </pre>
</blockquote>
<br>
</body>
</html>