On Thu, Jul 30, 2009 at 02:32:23AM +0400, Anton Vorontsov wrote: > On Wed, Jul 29, 2009 at 10:44:46PM +0100, Ben Dooks wrote: > [...] > > > + const struct spi_device_id *id_table; > > > + int (*probe_id)(struct spi_device *spi, > > > + const struct spi_device_id *id); > > > > how about leaving it at just probe and have either a call or a field > > in the device that you can look at to see if this was a new style of > > call? > > There are no technical difficulties with that, but it would be > inconsitent wrt other "device table"-aware buses (i2c, pci, of). Btw, I guess there are few reasons why other buses pass id via probe() call: - You'll have to store the "id" in device struct forever, while in most cases you only need it during probe(), then you don't need it at all; - If you don't store "id" in the device struct, you'll have to look up the device table twice (at first during bus->match(), and second time in drivers' probe() hook, i.e. probe(struct bus_dev *dev) { id = bus_get_devid(dev); /* here */ } -- Anton Vorontsov email: cbouatmailru at gmail.com irc://irc.freenode.net/bd2