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

Tomislav Bodor tbodor at ihug.co.nz
Wed Oct 4 12:21:23 CEST 2006


Tomislav Bodor wrote:
> 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?
>   

I have tweaked the Philips Europa reference card (69) to appear to have
a IR input for the remote (by making minor changes to saa7134-input.c
and saa7134-card.c (I was talking nonsense when I wanted to edit
saa7134-dvb.c). Now, obviously this is an ugly hack, but seems to work
for me at the moment (until card=70 has support for reverting to
analogue tuner again).



Tomislav




More information about the linux-dvb mailing list