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