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

Tomislav Bodor tbodor at ihug.co.nz
Tue Oct 3 08:05:39 CEST 2006

Oops. I sent an empty message by mistake. Here's the real thing (at the

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?

Thanks a lot for your help.


More information about the linux-dvb mailing list