[linux-dvb] PATCH for adequate customization and attachment of dvb-pll.c

Michael Krufky mkrufky at linuxtv.org
Fri Jun 1 22:05:22 CEST 2007


I'll post a better concept patch in a few minutes

-Mike Krufky

Bill Eldridge wrote:
>
> Suggestion:
>
> If the patch adds value without breaking anything, include it.
>
> Even if it's "ugly", you can easily clean it up later and "do it the
> right way" (tm).
> Providing you find time and cleaning it up is more important than
> something useful.
> I counted about 35 lines of actual logic in the patch, and I think
> that's really about 20-25
> if you ignore repetitions.
>
> If there's a better way of coding it that someone (Markus? Michael?)
> can think of in 5 minutes,
> please let Uwe know, since I imagine he could fix it in about 5
> minutes with
> his mind still fresh on the topic. Otherwise I suggest putting "clean
> up" somewhere
> low on the to-do list and moving on.
>
> Regards,
> Bill
>
> Uwe Bugla wrote:
>> Am Freitag, 1. Juni 2007 20:13 schrieben Sie:
>>  
>>> Uwe Bugla wrote:
>>>    
>>>> 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 <uwe.bugla at gmx.de>
>>>>       
>>> NACK.
>>>
>>> This hack is unacceptable.  Uwe, Please have patience     
>>
>> 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 :)
>>
>>  
>>> -- 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
>>>
>>>    
>>>> --- 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 && 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 && 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->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)
>>>>  {
>>>> @@ -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->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);
>>>> +}
>>>> +
>>>>      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) {
>>>>              dvb_attach(dvb_pll_attach, card->fe, 0x61,
>>>>                     card->i2c_adapter, &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 && 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 && 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->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)
>>>>  {
>>>> @@ -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->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);
>>>> +}
>>>> +
>>>>      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) {
>>>>              dvb_attach(dvb_pll_attach, card->fe, 0x61,
>>>>                     card->i2c_adapter, &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
>>>> linux-dvb at linuxtv.org
>>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>>>       
>>
>> _______________________________________________
>> linux-dvb mailing list
>> linux-dvb at linuxtv.org
>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>
>>
>>
>>   
>
>





More information about the linux-dvb mailing list