[linux-dvb] Kworld DVB-T 210 - dvb tuning problem

Hartmut Hackmann hartmut.hackmann at t-online.de
Sun Apr 13 20:56:47 CEST 2008


Hi, Tim

timf schrieb:
> timf wrote:
>> timf wrote:
>>   
>>> timf wrote:
>>>   
>>>     
>>>> Hartmut Hackmann wrote:
>>>>   
>>>>     
>>>>       
>>>>> Hi, Tim
>>>>>
>>>>> timf schrieb:
>>>>>     
>>>>>       
>>>>>         
>>>>>> hermann pitton wrote:
>>>>>>       
>>>>>>         
>>>>>>           
>>>>>>> Am Freitag, den 11.04.2008, 00:08 +0200 schrieb Hartmut Hackmann:
>>>>>>>  
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>> HI, Tim
>>>>>>>>
>>>>>>>> timf schrieb:
>>>>>>>>   
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>>>> Hi Hartmut,
>>>>>>>>> OK, found some more spare time, but very, very frustrated!
>>>>>>>>>
>>>>>>>>> 1) Tried ubuntu 7.04, 7.10, 8.04
>>>>>>>>>     Tried with just modules that exist in kernel (no v4l-dvb)
>>>>>>>>>    Tried v4l-dvb from June 2007 and tried current v4l-dvb
>>>>>>>>>    Tried with/without Hartmut patch - changeset 7376    49ba58715fe0
>>>>>>>>>    Tried with .gpio_config   = TDA10046_GP11_I, or .gpio_config   
>>>>>>>>> = TDA10046_GP01_I,
>>>>>>>>>    Tried using configs in saa7134-dvb.c matching tiger, tiger_s, 
>>>>>>>>> pinnacle 310i, twinhan 3056
>>>>>>>>>
>>>>>>>>>     # Australia / Perth (Roleystone transmitter)
>>>>>>>>>     # T freq bw fec_hi fec_lo mod transmission-mode guard-interval 
>>>>>>>>> hierarchy
>>>>>>>>>     # SBS
>>>>>>>>>     T 704500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
>>>>>>>>>     # ABC
>>>>>>>>>     T 725500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
>>>>>>>>>     # Seven
>>>>>>>>>     T 746500000 7MHz 2/3 NONE QAM64 8k 1/16 NONE
>>>>>>>>>     # Nine
>>>>>>>>>     T 767500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
>>>>>>>>>     # Ten
>>>>>>>>>     T 788500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
>>>>>>>>>
>>>>>>>>> 2) I have these saa7134 cards:
>>>>>>>>>     - pinnacle 310i
>>>>>>>>>     - kworld 210
>>>>>>>>>
>>>>>>>>>     This cx88 card:
>>>>>>>>>     - dvico DVB-T Pro hybrid (analog tv not work)
>>>>>>>>>
>>>>>>>>> -   problem only occurs with kworld 210 in linux (works fine in 
>>>>>>>>> WinXP)
>>>>>>>>>
>>>>>>>>> 3) In WinXP, all channels, both analog tv and dvb-t found
>>>>>>>>>
>>>>>>>>> 4) In linux, if start dvb-t first, never scans SBS - dmesg1
>>>>>>>>>
>>>>>>>>> 5) In linux, if start analog tv first, stop, then start dvb-t, 
>>>>>>>>> scan finds SBS - dmesg2
>>>>>>>>>
>>>>>>>>>       
>>>>>>>>>             
>>>>>>>>>               
>>>>>>>>>                 
>>>>>>>> a) The pinnacle 310i finds everything?
>>>>>>>>     It has the same chipset, but an almost perfectly handled tuner 
>>>>>>>> chip...
>>>>>>>>     This means that your initial config file is ok...
>>>>>>>> b) Does this mean that in case 4, all other channels are found?
>>>>>>>> c) Case 5: This finds everything?
>>>>>>>> d) What happens if you use the scan data of the pinnacle card?
>>>>>>>>     Does it tune SBS? Does it just take more time to stabilize?
>>>>>>>>     This can be understood.
>>>>>>>> e) Just to be sure: did you clarify the open point with 
>>>>>>>> .antenna_switch
>>>>>>>>     (i think so)
>>>>>>>> f) the kernel logs are as expected.
>>>>>>>> <snip>
>>>>>>>>
>>>>>>>>
>>>>>>>>   
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>>>> 6) Herman mentioned something called a "mode-switch" in the 
>>>>>>>>> archives, but not any description.
>>>>>>>>>       
>>>>>>>>>             
>>>>>>>>>               
>>>>>>>>>                 
>>>>>>>> I guess he meant the switching between analog, radio and dvb-t. 
>>>>>>>> This is the
>>>>>>>> GPIO handling and card depending.
>>>>>>>>     
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>> Tim must have it from when I mentioned the special case of card=87 and
>>>>>>> 94.
>>>>>>>
>>>>>>>  
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>>> I tried to find some data sheets for tda8275 tda8290 but only 
>>>>>>>>> found the publicity pdf file from Phillips,
>>>>>>>>> so at least I can see they go together, so I presume this 
>>>>>>>>> "mode-switch" is coded into those modules.
>>>>>>>>> But those modules work for all other cards, so now I'm lost again.
>>>>>>>>>
>>>>>>>>> What else should I try?
>>>>>>>>>
>>>>>>>>>       
>>>>>>>>>             
>>>>>>>>>               
>>>>>>>>>                 
>>>>>>>> If my assumptions above are wrong, there is one other chance:
>>>>>>>> Recently i saw another card that does the (unusual) mode switching
>>>>>>>> like card 87. So to be sure, you might try to force this card type (be
>>>>>>>> aware of the antenna inputs, if in doubt, try both.
>>>>>>>>
>>>>>>>> Best regards
>>>>>>>>    Hartmut
>>>>>>>>
>>>>>>>>     
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>> For the Medion8800 Quad and CTX948 also showing this issue, needs to
>>>>>>> tune analog first to have good recepton on DVB-T, they are a little
>>>>>>> weaker on analog than other cards, but after that on DVB-T, they are as
>>>>>>> good than known good others.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Hermann
>>>>>>>
>>>>>>>
>>>>>>>   
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>> Hi Hartmut and Hermann,
>>>>>>
>>>>>> a) The pinnacle 310i finds everything?
>>>>>>    It has the same chipset, but an almost perfectly handled tuner 
>>>>>> chip...
>>>>>>    This means that your initial config file is ok...
>>>>>>
>>>>>> Answer - Yes, the non-working remote (and constant unknown key 
>>>>>> messages) is all that is
>>>>>> wrong with the pinnacle 310i.
>>>>>> I tested it for your new tda8290 tda8275 patches - didn't I send you 
>>>>>> the results?
>>>>>> It works fine!
>>>>>>
>>>>>> b) Does this mean that in case 4, all other channels are found?
>>>>>>
>>>>>> Answer - In linux, if start dvb-t first, never scans SBS
>>>>>>     - yes all other channels are viewable/scannable.
>>>>>>
>>>>>> c) Case 5: This finds everything?
>>>>>>
>>>>>> Answer - In linux, if start analog tv first, stop, then start dvb-t, 
>>>>>> scan finds SBS
>>>>>>     - yes all channels are viewable/scannable.
>>>>>>
>>>>>> d) What happens if you use the scan data of the pinnacle card?
>>>>>>    Does it tune SBS? Does it just take more time to stabilize?
>>>>>>    This can be understood.
>>>>>>
>>>>>> Answer - the same answer applies as for b) and c)
>>>>>>
>>>>>> e) Just to be sure: did you clarify the open point with .antenna_switch
>>>>>>    (i think so)
>>>>>>
>>>>>> Answer - yes that was me being over-enthusiastic - made no difference
>>>>>> as you pointed out.
>>>>>>
>>>>>>
>>>>>> OK, this modification has achieved, I think success. I can now 
>>>>>> view/scan all channels
>>>>>> in analog tv or dvb-t in either order.
>>>>>> That is, I now don't have to start analog tv first, before dvb-t will 
>>>>>> start.
>>>>>>
>>>>>> In saa7134- cards.c - no change.
>>>>>>
>>>>>> In saa7134-dvb.c:
>>>>>>
>>>>>> Remove this:
>>>>>> ------------------------------------
>>>>>> static struct tda1004x_config kworld_dvb_t_210_config = {
>>>>>>    .demod_address = 0x08,
>>>>>>    .invert        = 1,
>>>>>>    .invert_oclk   = 0,
>>>>>>    .xtal_freq     = TDA10046_XTAL_16M,
>>>>>>    .agc_config    = TDA10046_AGC_TDA827X,
>>>>>>    .gpio_config   = TDA10046_GP11_I,
>>>>>>    .if_freq       = TDA10046_FREQ_045,
>>>>>>    .i2c_gate      = 0x4b,
>>>>>>    .tuner_address = 0x61,
>>>>>>    .antenna_switch= 1,
>>>>>>    .request_firmware = philips_tda1004x_request_firmware
>>>>>> };
>>>>>> ------------------------------
>>>>>>
>>>>>> Add this:
>>>>>>
>>>>>> ------------------------------
>>>>>> static int kw210_tuner_init(struct dvb_frontend *fe)
>>>>>> {
>>>>>>    struct saa7134_dev *dev = fe->dvb->priv;
>>>>>>    philips_tda827x_tuner_init(fe);
>>>>>>    /* route TDA8275a AGC input to the channel decoder */
>>>>>>    saa7134_set_gpio(dev, 22, 1);
>>>>>>    return 0;
>>>>>> }
>>>>>>
>>>>>> static int kw210_tuner_sleep(struct dvb_frontend *fe)
>>>>>> {
>>>>>>    struct saa7134_dev *dev = fe->dvb->priv;
>>>>>>    /* route TDA8275a AGC input to the analog IF chip*/
>>>>>>    saa7134_set_gpio(dev, 22, 0);
>>>>>>    philips_tda827x_tuner_sleep(fe);
>>>>>>    return 0;
>>>>>> }
>>>>>>
>>>>>> static struct tda827x_config kw210_cfg = {
>>>>>>    .tuner_callback = saa7134_tuner_callback,
>>>>>>    .init = kw210_tuner_init,
>>>>>>    .sleep = kw210_tuner_sleep,
>>>>>>    .config = 0
>>>>>> };
>>>>>>
>>>>>> static struct tda1004x_config kworld_dvb_t_210_config = {
>>>>>>    .demod_address = 0x08,
>>>>>>    .invert        = 1,
>>>>>>    .invert_oclk   = 0,
>>>>>>    .xtal_freq     = TDA10046_XTAL_16M,
>>>>>>    .agc_config    = TDA10046_AGC_TDA827X,
>>>>>>    .gpio_config   = TDA10046_GP11_I,
>>>>>>    .if_freq       = TDA10046_FREQ_045,
>>>>>>    .tuner_address = 0x61,
>>>>>>    .request_firmware = philips_tda1004x_request_firmware
>>>>>> };
>>>>>> ----------------------------
>>>>>>
>>>>>> Change this:
>>>>>>
>>>>>>    case SAA7134_BOARD_KWORLD_DVBT_210:
>>>>>>        dev->dvb.frontend = dvb_attach(tda10046_attach, 
>>>>>> &kworld_dvb_t_210_config, &dev->i2c_adap);
>>>>>>        if (dev->dvb.frontend) {
>>>>>>            if (dvb_attach(tda827x_attach,dev->dvb.frontend,
>>>>>>                   kworld_dvb_t_210_config.tuner_address, &dev->i2c_adap,
>>>>>>                                &kw210_cfg) == NULL) {
>>>>>>                wprintk("no tda827x tuner found at addr: %02x\n",
>>>>>>                    kworld_dvb_t_210_config.tuner_address);
>>>>>>            }
>>>>>>        }
>>>>>>        break;
>>>>>> ---------------------------------------------
>>>>>>
>>>>>> However, I need you to explain something for me.
>>>>>>
>>>>>> There is no difference if I use this:
>>>>>>
>>>>>>    saa7134_set_gpio(dev, 22, 1);
>>>>>>
>>>>>> or this:
>>>>>>
>>>>>>    saa7134_set_gpio(dev, 21, 1);
>>>>>>
>>>>>> I await your guidance, meanwhile I shall apply my
>>>>>> modification to enable the remote and ensure it
>>>>>> doesn't have any effect.
>>>>>>
>>>>>> Many thanks to you both,
>>>>>>
>>>>>> Regards,
>>>>>> Tim
>>>>>>
>>>>>>       
>>>>>>         
>>>>>>           
>>>>> Again progress, excellent!
>>>>> I think we will need one further interation. If i go through your
>>>>> changes and comments, i come to the opinion that we will get the same
>>>>> with less changes. But if i understand this right, its astonishing 
>>>>> that your
>>>>> card worked a bit. But let me go through your last patch again tomorrow -
>>>>> i am too tired now.
>>>>>
>>>>> Best regards
>>>>>   Hartmut
>>>>>
>>>>>     
>>>>>       
>>>>>         
>>>> Hi Hartmut,
>>>>
>>>> I was wrong:
>>>>
>>>> ->There is no difference if I use this:
>>>>
>>>> ->   saa7134_set_gpio(dev, 22, 1);
>>>>
>>>> ->or this:
>>>>
>>>> ->   saa7134_set_gpio(dev, 21, 1);
>>>>
>>>> This is wrong.
>>>> It only works at all when it is this:   saa7134_set_gpio(dev, 22, 1);
>>>>
>>>> With this:   saa7134_set_gpio(dev, 21, 1); it does not scan anything at all.
>>>>
>>>> I proved this out by modifying the source, rebuild v4l-dvb,
>>>> and then instead of rebooting, I power-cycled each time.
>>>>
>>>>
>>>> There are 2 problems here:
>>>> 1) With no modification, I must switch to analog tv before I can switch 
>>>> to dvb-t.
>>>>     If I am using Kaffeine, and then wish to use Me-tv, I must view 
>>>> analog tv
>>>>     in between.
>>>>
>>>> 2) With no modification, dvb-t will not scan SBS unless analog tv viewed 
>>>> first.
>>>>
>>>>
>>>> With this modification, both problems vanish.
>>>>
>>>> I have not yet tested radio.
>>>>
>>>> Regards,
>>>> Tim
>>>>
>>>> _______________________________________________
>>>> linux-dvb mailing list
>>>> linux-dvb at linuxtv.org
>>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>>>
>>>>   
>>>>     
>>>>       
>>> Hi Hartmut,
>>>
>>> OK, tried to test radio with gradio, can't get any frequency to lock.
>>>
>>> Now, switching to radio then causes analog tv to have a very weak signal 
>>> - only 1 channel will scan with very noisy picture.
>>>
>>> Then need to power-cycle to revert to good system.
>>>
>>>  From syslog:
>>> Apr 13 14:15:47 ubuntu kernel: [ 3863.073092] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:15:47 ubuntu kernel: [ 3863.193072] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:15:47 ubuntu kernel: [ 3863.297056] tda829x 0-004b: adjust 
>>> gain, step 1. Agc: 0, ADC stat: 0, lock: 0
>>> Apr 13 14:15:47 ubuntu kernel: [ 3863.441033] tda829x 0-004b: adjust 
>>> gain, step 2. Agc: 204, lock: 0
>>> Apr 13 14:15:47 ubuntu kernel: [ 3863.585010] tda829x 0-004b: adjust 
>>> gain, step 3. Agc: 123
>>> Apr 13 14:15:47 ubuntu kernel: [ 3863.721163] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>> Apr 13 14:15:48 ubuntu kernel: [ 3863.737067] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>> Apr 13 14:15:48 ubuntu kernel: [ 3863.752986] tuner' 0-004b: Cmd 
>>> VIDIOC_S_TUNER accepted for radio
>>> Apr 13 14:15:48 ubuntu kernel: [ 3863.752990] tda829x 0-004b: setting 
>>> tda829x to system B
>>> Apr 13 14:15:48 ubuntu kernel: [ 3863.856965] tda827x: setting tda827x 
>>> to system B
>>> Apr 13 14:15:48 ubuntu kernel: [ 3863.912956] tda827x: AGC2 gain is: 10
>>> Apr 13 14:15:48 ubuntu kernel: [ 3864.240905] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:15:48 ubuntu kernel: [ 3864.360885] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:15:48 ubuntu kernel: [ 3864.480865] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:15:48 ubuntu kernel: [ 3864.584849] tda829x 0-004b: adjust 
>>> gain, step 1. Agc: 0, ADC stat: 0, lock: 0
>>> Apr 13 14:15:48 ubuntu kernel: [ 3864.728828] tda829x 0-004b: adjust 
>>> gain, step 2. Agc: 209, lock: 0
>>> Apr 13 14:15:49 ubuntu kernel: [ 3864.872802] tda829x 0-004b: adjust 
>>> gain, step 3. Agc: 129
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.108802] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.132069] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>>
>>> -> I know the local FM station is 107.3MHz and can tune it in with WinXP
>>>
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.148049] tuner' 0-004b: radio freq 
>>> set to 107.30
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.148054] tda829x 0-004b: setting 
>>> tda829x to system B
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.256024] tda827x: setting tda827x 
>>> to system B
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.324013] tda827x: AGC2 gain is: 10
>>> Apr 13 14:17:08 ubuntu kernel: [ 3944.651961] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:17:09 ubuntu kernel: [ 3944.771941] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:17:09 ubuntu kernel: [ 3944.891922] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:17:09 ubuntu kernel: [ 3944.995906] tda829x 0-004b: adjust 
>>> gain, step 1. Agc: 0, ADC stat: 0, lock: 0
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.143884] tda829x 0-004b: adjust 
>>> gain, step 2. Agc: 229, lock: 0
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.291857] tda829x 0-004b: adjust 
>>> gain, step 3. Agc: 149
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.432058] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.451896] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.467841] tuner' 0-004b: Cmd 
>>> VIDIOC_S_TUNER accepted for radio
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.467845] tda829x 0-004b: setting 
>>> tda829x to system B
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.575812] tda827x: setting tda827x 
>>> to system B
>>> Apr 13 14:17:09 ubuntu kernel: [ 3945.643801] tda827x: AGC2 gain is: 10
>>> Apr 13 14:17:10 ubuntu kernel: [ 3945.971749] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:17:10 ubuntu kernel: [ 3946.091729] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:17:10 ubuntu kernel: [ 3946.211710] tda829x 0-004b: tda8290 
>>> not locked, no signal?
>>> Apr 13 14:17:10 ubuntu kernel: [ 3946.315694] tda829x 0-004b: adjust 
>>> gain, step 1. Agc: 0, ADC stat: 0, lock: 0
>>> Apr 13 14:17:10 ubuntu kernel: [ 3946.463670] tda829x 0-004b: adjust 
>>> gain, step 2. Agc: 231, lock: 0
>>> Apr 13 14:17:10 ubuntu kernel: [ 3946.611645] tda829x 0-004b: adjust 
>>> gain, step 3. Agc: 150
>>> Apr 13 14:17:20 ubuntu kernel: [ 3956.031282] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>> Apr 13 14:17:20 ubuntu kernel: [ 3956.046878] tuner' 0-004b: Cmd 
>>> VIDIOC_G_TUNER accepted for radio
>>>
>>>
>>> So, the radio config isn't correct.
>>>
>>> I'll keep digging.
>>>
>>> Regards,
>>> Tim
>>>
>>> _______________________________________________
>>> linux-dvb mailing list
>>> linux-dvb at linuxtv.org
>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>>
>>>   
>>>     
>> Hi Hartmut,
>> OK, I'll send you this info that I think I have worked out so far:
>>
>> .gpiomask = 1 << 21, is equivalent to:
>> GPIO 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
>> gpiomask 0x00200000 = 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>
>> from syslog:
>>
>> Apr 13 22:31:56 ubuntu kernel: [ 148.955428] tda1004x: setting up plls 
>> for 48MHz sampling clock
>> Apr 13 22:31:56 ubuntu kernel: [ 149.239381] tda1004x: found firmware 
>> revision 29 -- ok
>> Apr 13 22:31:57 ubuntu kernel: [ 149.431357] tda827x: tda827x_init:
>> Apr 13 22:31:57 ubuntu kernel: [ 149.431365] saa7133[0]/core: setting 
>> GPIO22 to static 1
>> Apr 13 22:32:00 ubuntu kernel: [ 153.155969] tda827x: tda827xa_set_params:
>> Apr 13 22:32:01 ubuntu kernel: [ 153.387931] tda827x: tda8275a AGC2 gain 
>> is: 7
>>
>>
>> Apr 13 22:32:08 ubuntu kernel: [ 160.737003] saa7133[0]/core: setting 
>> GPIO22 to static 0
>> Apr 13 22:35:28 ubuntu ntpd[5532]: Listening on interface #6 eth0, 
>> fe80::21b:fcff:feb3:8532#123 Enabled
>> Apr 13 22:35:28 ubuntu ntpd[5532]: Listening on interface #7 eth0, 
>> 10.1.1.5#123 Enabled
>> Apr 13 22:47:11 ubuntu kernel: [ 1063.436570] tuner' 0-004b: Cmd 
>> VIDIOC_S_STD accepted for analog TV
>>
>> Seems to be:
>> GPIO22 = 1 for DVB-T
>> GPIO22 = 0 for analog-tv
>>
>> What then for radio? Perhaps GPIO21 is radio?
>> Try this:
>> .gpiomask = 0 << 22
>> GPIO 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
>> gpiomask 0x00000000 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>> Should give start with analog-tv = on; radio =off
>> .gpio = 0x00200000, for radio on (GPIO21 = 1)
>> Result:
>> No radio, but dvb-t, analog-tv is ok.
>>
>> My guess is that GPIO22 = 1 (dvb-t); = 0 (analog-tv, default)
>> GPIO21 = 0 or 1 for radio
>> But you would have to switch antenna from TV to radio via demux first?
>> I can't see where/how to do that.
>>
>> It seems as if the gpiomask should be applied to GPIO22? Then how to 
>> start radio?
>>
>> Regards,
>> Tim
>>
>> _______________________________________________
>> linux-dvb mailing list
>> linux-dvb at linuxtv.org
>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>
>>

I will try to reply to all your last mails with this

> Something I don't understand.
> 
> This card: KWORLD VS-DVBT210RF
> 
> Chips:
> SAA7131E - video decoder
> TDA10046A - DVB-T decoder
> KS007 - remote controller
> HC4052 - analog demux
> 24C02BN - eeprom
> NXP 8275A - tuner
> 
That's a common configuration.

> Now, other cards have something such as mt352 as an IF demod
> I was under the impression that the 8275 went with an 8290 IF demod,
> but there is no demod chip on this card.
> 
> How does that work?
>
mt352 is a dvb-t channel decoder. But you are right, the tda8275(a)
needs a tda8290 for analog tv. But this is integrated in the saa7131.

> The tuner on the Pinnacle 310i is under a metal shield, so I can't 
> actually see it.
> 
> I'm just getting more confused - there has to be something for the IF stage!
> 
Right! its in the saa7131.

I think i know now how your card needs to be configured.
Something that seems not to be really clear for you is the configuration
of the so-called AGC (automatic gain control) of the tuner. This
needs to be switched according to the function the tuner is used for:
analog TV -> FM Radio -> DVB-T.
This is done with the 4052 analog mux and requires 2 control bits -> the GPIOs.
GPIO 21 is used to switch between analog TV and FM radio.
Typically GPIO21=0 -> analog TV, GPIO21=1 -> FM Radio.
In your case, GPIO22 is used to switch between DVB-T and analog while most cards
use GPIO1 of the tda10046 for this.

You should need to make chages only in saa7134-dvb, dvb_init()
- remove the old
	case SAA7134_BOARD_KWORLD_DVBT_210: (plus code)
-and add it to
	case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:

That should do it (though we should add a .antenna switch to the configuration).

Best regards
   Hartmut



More information about the linux-dvb mailing list