Re: [PATCH 1/7] spi: Add support for device table matching

From: Anton Vorontsov
Date: Wed Jul 29 2009 - 18:40:57 EST


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@xxxxxxxxx
irc://irc.freenode.net/bd2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/