Andrew de Quincey wrote:
as workaround one may do a negative-check: attach only if you can't read the cx22702 device ID. Ugly but may work.On Sunday 12 Sep 2004 18:56, Johannes Stezenbach wrote:Andrew de Quincey wrote:On Sunday 12 Sep 2004 17:43, Johannes Stezenbach wrote:I've seen the source of [name deleted]'s STB software, which has absolutely nothing to do with Linux. And guess what? They do device probing, too. Because in real life one piece of software has to run on a multitude of hardware revisions. I can't wait until [name deleted] tells you that the new XY frontend is cheaper that Samsung's, and could you not add device probing to your USB thingy firmware. The only thing that is "broken" about kernel I2C autoprobing is that it is too simple. But hey, it worked for all those years ;-) Now, for those cases where the simple autoprobing indeed cannot be made to work, the addition of a NOPROBE flag and doing more sophisticated probing seems like a straight forward thing to me.Oh aye, we'll always have to do probing. However, the problems we're having come from the i2c core probing for every single random i2c device that happens to have a registered driver loaded. I bet [name deleted]'s STB software only probes for i2c devices that they know their device might see. No problems with *that* - it can fix any clashes itself, as it knows what it expects.Oh, I thought we were already beyond that point, that it was agreed that we need the I2C device class field to keep non-DVB stuff away from DVB-I2C buses. (Really, I thought that issue had been sorted out months ago by patches posted by Michael Hunold to lkml.) http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&selm=1Ajn2-5WU-1%40gated -at.bofh.it I was under the impression that only tda9987 vs. cx22702 was actually a more difficult to solve problem, currently. And my thinking was (I could easily be wrong, though), that the probe functions for those modules need to do something more than just ping for some device at an address.
yeah - the cx22702 isn't a problem - theres an ID register you can read to determine if its there or not (assuming some other device doesn't return the same value!). The tda9987 is though - its a really dumb tuner chip - I couldn't see any obvious way to reliably detect it. I don't have one though - maybe someone with one can find a way?