On Mon, 10 Jun 2013 15:40:14 +0200, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > On Mon, Jun 10, 2013 at 02:18:17PM +0200, Linus Walleij wrote: > > On Fri, Jun 7, 2013 at 11:32 PM, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > > > ... > > >> I2C devices probed from device tree should subsequently be > > >> fixed to handle the case where of_match_table() is > > >> used (I think none of them do that today), and platforms should > > >> fix their device trees to use compatible strings for I2C devices > > >> instead of setting the name to Linux device driver names as is > > >> done in multiple cases today. > > > > > > I guess your solution is the least intrusive one. Still, it could happen > > > that of_match_table is scanned three times (by driver core, i2c layer, > > > and i2c driver) which is IMO an indication to look for a more elegant > > > solution tp find out what really matched? > > > > I think that is a generic problem with the device tree > > being completely stateless, and rather a comment on the > > of_match_device() intrinsics being inelegant than on this > > patch? > > Yes. > > > Do you see it as a blocker for the patch? > > No blocker. Yet, I was hoping for somebody perhaps having a good idea. > Platform devices have 'id_entry', for example. Sadly, I don't have the > resources to pick up a similar idea. > I did at one time have a patch that kept the pointer around in the struct device if an of_match_table succeeded, but it caused subtle race conditions that weren't easy to solve. I reverted back to just calling of_match_table() several times because it was easy. g. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html