[linux-dvb] Switching tuner to analogue mode on Compro VideoMate DVB-T300

Tomislav Bodor tbodor at ihug.co.nz
Wed Oct 4 06:33:55 CEST 2006


Tomislav Bodor wrote:
> Oops. I sent an empty message by mistake. Here's the real thing (at the
> bottom).
>
>
> Hartmut Hackmann wrote:
>   
>> Hi,
>>
>> Tomislav Bodor wrote:
>>     
>>> Hartmut Hackmann wrote:
>>>
>>>       
>>>> Hi,
>>>>
>>>> Tomislav Bodor wrote:
>>>>
>>>>         
>>>>> Hi,
>>>>>
>>>>> I am having problems getting the DVB-T300 to switch to analogue mode
>>>>> once the digital part of the tuner has been accessed. The only way I
>>>>> found seems to be to unload the saa7134-dvb module and reload saa7134.
>>>>> I'm using the drivers from vanilla 2.6.18 kernel, but I checked the
>>>>> relevant sections (see below) against mercurial and they seem to be
>>>>> the
>>>>> same.
>>>>>
>>>>> Now, I have had a look at how this is supposed to be switched back to
>>>>> analogue and have found the sleep function (the one used for
>>>>> DVB-T300 is
>>>>> philips_europa_tuner_sleep) and the way it's called from
>>>>> dvb_frontent.c
>>>>> after dvb_shutdown_timeout expires. This all seems to work (and the
>>>>> sleep function is called correctly), but the tuner stays in digital
>>>>> mode.
>>>>>
>>>>> Does anyone have an idea why this might not work? Maybe the i2c
>>>>> messages
>>>>> are wrong for this card? Unfortunately this is all completely new
>>>>> to me,
>>>>> but I'm happy to test any patches :)
>>>>>
>>>>>
>>>>>           
>>>> There have been 2 big changes since i added support for this card.
>>>> I worried about the tda9887 merge in the tuner module, but the
>>>> effect i worried about is a bit different from what you describe.
>>>> - are there any error messages in the kernel log?
>>>> - does analog tv work immedeately after module load?
>>>> Any additional information will help.
>>>>         
>>> Sure. Unfortunately, I don't know what's useful information and what's
>>> not, so I may overload you :)
>>>
>>> I'll tackle the latter first: analog works just fine after saa7134
>>> module is loaded (this for me happens automatically during boot). It
>>> continues working even after saa7134-dvb is loaded, all the way until I
>>> run any dvb application (e.g. scan or mythbackend with a DVB card
>>> configured). Once a dvb device is accessed the card is switched to
>>> digital mode (and I can watch digital TV just fine).
>>>
>>> Now for the first question: from that point onwards digital works fine,
>>> but accessing the card in analogue mode (say using tvtime or mythtv via
>>> the analogue tuner) produces the following errors in the kernel log:
>>>
>>> Oct  2 16:04:38 localhost kernel: [  540.007478] tuner 1-0061: i2c i/o
>>> error: rc == -5 (should be 4)
>>> Oct  2 16:04:38 localhost kernel: [  540.015462] tuner 1-0061: i2c i/o
>>> error: rc == -5 (should be 4)
>>> Oct  2 16:04:38 localhost kernel: [  540.023452] tuner 1-0061: i2c i/o
>>> error: rc == -5 (should be 4)
>>> Oct  2 16:04:38 localhost kernel: [  540.131306] tuner 1-0061: i2c i/o
>>> error: rc == -5 (should be 4)
>>> Oct  2 16:04:38 localhost kernel: [  540.139289] tuner 1-0061: i2c i/o
>>> error: rc == -5 (should be 4)
>>> Oct  2 16:04:38 localhost kernel: [  540.215214] tuner 1-0061: i2c i/o
>>> error: rc == -5 (should be 4)
>>>
>>>       
>> This is the information i was looking for. There is something going wrong
>> with the I2c bridge.
>>
>>     
>>> They come in batches of six at a time every time I start tvtime and then
>>> one at a time every time I change channels.
>>>
>>>       
>> <snip>
>>     
>>> And this reminds me: I never downloaded any firmware for tda10046 - it
>>> just worked this way, though various documentation says that I should
>>> use the get_dvb_firmware script from linux/Documentation/dvb. Why is it
>>> working without firmware (out of curiosity)?
>>>
>>>       
>> Some cards have an eeprom with the Firmware. Yours too. In this case,
>> the channel decoder boots from this.
>>
>> This is a quick shot: can you please try to force the card type to69?
>> So:
>> modprobe saa7134 card=69
>> modprobe saa7134-dvb
>> (after you unloaded these modules)
>>
>> Hartmut
>>
>>
>>     
>
> That did it - it now works as expected: after a delay of about 5
> seconds, the tuner switches back to analogue mode. I have had a look at
> the way the reference Philips Europa card is set up in saa7134-dvb.c and
> I see that DVB-T300 is missing one of the sleep functions - tuner has
> one, but the front end doesn't. Maybe there's more, but I don't know.
> Not sure what went wrong and when. I presume you know what needs to be
> done from this point onwards?
>
> Anyway, this workaround seems perfectly fine for now. Do you think there
> is any functionality I will be missing compared to using card=70?
>   

Ah. I see something missing: the remote input device is not initialised
when I use card=69. With card=70 it's initialised correctly. This is a
problem - I need the remote. If I try tweaking the code for DVB-T300 in
saa7134-dvb to make it more similar to what's going on for Philips
Europa reference, will that take me anywhere? Or is it more complicated
than that?


Tomislav




More information about the linux-dvb mailing list