[linux-dvb] Re: [Patch] Adding support for the Hauppage HVR1100

Ralph Metzler rjkm at metzlerbros.de
Tue Nov 29 18:04:27 CET 2005


Patrick Boettcher writes:
 > Maybe a future device :)

Not so future ...

 > 
 >           Tuner  Tuner
 >             ||     ||
 >             ||     ||
 >           Demod  Demod
 >             |      |
 >        +----+------+
 >        |
 >        |
 >    main_I2C
 > 
 > (just the i2c-bus - no IF-connection) - ||  is the virtual gated-i2c-bus
 > 
 > main_I2C is the i2c-master for the main i2c bus and is also in charge for 
 > submitting messages to the device behind the gate. When data is 
 > transferred from or to the device behind the gate, main_I2C has to take 
 > care that there is only one gate open at a time and that it is the correct 
 > one - for some tuners it is even necessary to close the gate before 
 > writing something else on the i2c-bus or when accessing the other tuner 
 > behind the second demod, which can have the same i2c-address.

Yes, sounds familiar. That's why a "keep gate open"-approach
(additional to the unwanted interference) will not work in all cases.



 > gated_i2c = get_virtual_i2c_bus_controlled_by_the_demod(demod);
 > tuner = init_tuner(gated_i2c);
 > 
 > ==== i2c-transfer function
 > 
 > === end of pseudo code
 > 
 > I did it like this for our local drivers inspired by i2c-structures of the 
 > kernel. When I will have the time, I will create such a thing at least for 
 > the devices I have access to for v4l-dvb, but I'm not sure when this will 
 > be. (Maybe during the next 2 weeks).

Also looks familiar. I had to do similar things for a two tuner card,
but I did not do it in such a general way.
It would be good if something like that would be available.

There are also cases like this:

           Tuner  Tuner
             ||     ||
             ||     ||
           Demod  Demod
             |      |
             |      |
             |      |
             |      |
              Switch
                |              
                |
               I2C

but these can usually be treated easily inside the card driver.

 

Ralph



More information about the linux-dvb mailing list