On Mon, Sep 16, 2013 at 12:40 PM, Mark Brown <broonie@xxxxxxxxxx> wrote: > On Mon, Sep 16, 2013 at 10:19:56AM +0100, Lee Jones wrote: > >> Can't you just NULL .id_table? No. That is not OK with the I2C core. It's not easy to get rid of the requirement for .id_table not to be NULL either. >> Here's the code which would use it: >> > /* match on an id table if there is one */ >> > if (driver->id_table) >> > return i2c_match_id(driver->id_table, client) != NULL; > >> Matching for "dummy" will just waste cycles. > > i2c_device_probe() will return -ENODEV if id_table is NULL before we get > to actually matching. We could remove that check though... Copy+pasting from my own reply earlier: I've tried to fix this for DT-only I2C devices and this very driver was the reason. But a tiresome regression due to drivers relying on this i2c_device_id not being NULL and inability to remove it from the I2C core without refactoring the world ensued, see: commit c80f52847c50109ca248c22efbf71ff10553dca4 Reverted in: commit 661f6c1cd926c6c973e03c6b5151d161f3a666ed For this reason I think: http://marc.info/?l=linux-next&m=137148411231784&w=2 I have tentatively given up getting pure DT I2C drivers to probe, I don't think I have the whole picture, but Wolfram has serious doubts about this and say we have to be careful .... Wolfram, do you have some ideas on how we should proceed or ar you happy with merging this as-is? Yours, Linus Walleij -- 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