On Sunday 12 September 2004 16:23, Andrew de Quincey wrote:
Not registering to the i2c core and calling the i2c read/write
functions directly solves this. You just need to check that the card
mutex is hold by the read/write functions.
So you're suggesting using the i2c_adapter structure, but not
registering it with the kernel? Gah, I wish I'd understood thats what
you meant two days ago!
Will this not cause problems with devices like the cx88 though - cards
using it can have other non-DVB i2c drivers which are registered with the
kernel i2c. I doubt they will work particularly well if they were given
an "unofficial" i2c_adapter.
In that case, it would have to be registered, in which case autoprobing
is still a problem, hence why I am trying to fix autoprobing.
I still don't see why this can't be solved in the dvb-drivers. The adapter
itself can reject i2c-devices known to conflict with frontends in it's
client_register function, or reject i2c-devices known not to exists on a
particular adapter, hmm?
This is the problem, right, or am I still far out? :)
Hmm yeah, but then the adapters have to know more than they should about other
i2c devices in the system. And for things like the cx88 which can have dvb,
video, tuner devices etc etc, you'd probably end up with complex ifs. Also,
as more i2c devices are implemented, more will clash in future, which will
break things for a bit.