public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
* Documentation issue on attaching new style drivers
@ 2008-06-03 10:34 Ben Dooks
       [not found] ` <20080603103450.GA8391-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Ben Dooks @ 2008-06-03 10:34 UTC (permalink / raw)
  To: i2c-GZX6beZjE8VD60Wz+7aTrA

Quoting from Documentation/i2c/writing-clients, the section
entitled "Standard Driver Model Binding ("New Style")" has
the following paragraph:

Drivers match devices when i2c_client.driver_name and the driver name are
the same; this approach is used in several other busses that don't have
device typing support in the hardware.  The driver and module name should
match, so hotplug/coldplug mechanisms will modprobe the driver.

Having tried this whilst upgrading an old driver in my own
tree, I found that this does not work, and that you need to
supply your own idtable for the .id_table entry.

I had a quick look in drivers/i2c/i2c-core.c and it seems
that the only thing the .match entry i2c_device_match() 
is doing is checking the driver's id_table, as so:

static int i2c_device_match(struct device *dev, struct device_driver *drv)
{
	struct i2c_client	*client = to_i2c_client(dev);
	struct i2c_driver	*driver = to_i2c_driver(drv);

	/* make legacy i2c drivers bypass driver model probing entirely;
	 * such drivers scan each i2c adapter/bus themselves.
	 */
	if (!is_newstyle_driver(driver))
		return 0;

	/* match on an id table if there is one */
	if (driver->id_table)
		return i2c_match_id(driver->id_table, client) != NULL;

	return 0;
}

Is the documentation wrong, and all drivers need to have an id_table
in them, or is the i2c-core.c wrong for only checking the id_table
entries?

My suspicion is that everyone is using the id_table as this can be
passed to the MODULE_DEVICE_TABLE() to allow autoloading of the
relevant modules? Note, the i2c_probe function will correctly pass
a NULL ID if there is no id_table present.

-- 
Ben (ben-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'

_______________________________________________
i2c mailing list
i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
http://lists.lm-sensors.org/mailman/listinfo/i2c

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-06-03 14:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-03 10:34 Documentation issue on attaching new style drivers Ben Dooks
     [not found] ` <20080603103450.GA8391-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2008-06-03 14:35   ` Jean Delvare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox