On Thu, Jun 05, 2014 at 04:55:09PM +0100, Lee Jones wrote: > On Thu, 05 Jun 2014, Grant Likely wrote: > > I still think the way to do it is to emulate the missing i2c_device_id > > when calling the drivers .probe() hook by having a temporary copy on > > the stack and filling it with data from the OF or ACPI table.... > That's the opposite of what I'm trying to achieve. I'm trying to get > rid of unused i2c_device_id tables, rather than reinforce their > mandatory existence. I think an i2c_of_match_device() with knowledge > of how to match via pure DT principles (of_node/compatible) and a > fall-back, which is able to match on a provided of_device_id table > alone i.e. without the requirement of an existing of_node. > I've also been mulling over the idea of removing the second probe() > parameter, as suggested by Wolfram. However, this has quite deep > ramifications which would require a great deal of driver adaptions. If you're going to do that another option is to refactor the probe() function to take the driver_data as an argument and then have the core pass that from whatever table it matched from rather than the entire i2c_device_id structure. That way the driver just needs to supply all the ID tables mapping binding information to whatever it needs and the core can pass in the driver data from whatever table it matched against.
Attachment:
signature.asc
Description: Digital signature