Message ID | 20110223043345.20795.2936.stgit@localhost6.localdomain6 |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
Grant, On 02/22/2011 10:33 PM, Grant Likely wrote: > Add a new .of_match field to struct device which points at the > matching device driver .of_match_table entry when a device is probed > via the device tree > > Signed-off-by: Grant Likely<grant.likely@secretlab.ca> > --- > include/linux/device.h | 1 + > include/linux/of_device.h | 5 +++-- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/include/linux/device.h b/include/linux/device.h > index ca5d252..8d8e267 100644 > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -441,6 +441,7 @@ struct device { > struct dev_archdata archdata; > > struct device_node *of_node; /* associated device tree node */ > + const struct of_device_id *of_match; /* matching of_device_id from driver */ Couldn't of_match/of_match_table be merged into the platform dev/drv id_entry/id_table. Handling MODALIAS for a driver that does both OF style and normal platform device matching may be a problem though. Rob -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Feb 23, 2011 at 12:29:03PM -0600, Rob Herring wrote: > Grant, > > On 02/22/2011 10:33 PM, Grant Likely wrote: > >Add a new .of_match field to struct device which points at the > >matching device driver .of_match_table entry when a device is probed > >via the device tree > > > >Signed-off-by: Grant Likely<grant.likely@secretlab.ca> > >--- > > include/linux/device.h | 1 + > > include/linux/of_device.h | 5 +++-- > > 2 files changed, 4 insertions(+), 2 deletions(-) > > > >diff --git a/include/linux/device.h b/include/linux/device.h > >index ca5d252..8d8e267 100644 > >--- a/include/linux/device.h > >+++ b/include/linux/device.h > >@@ -441,6 +441,7 @@ struct device { > > struct dev_archdata archdata; > > > > struct device_node *of_node; /* associated device tree node */ > >+ const struct of_device_id *of_match; /* matching of_device_id from driver */ > > Couldn't of_match/of_match_table be merged into the platform dev/drv > id_entry/id_table. Handling MODALIAS for a driver that does both OF > style and normal platform device matching may be a problem though. .of_match & .of_match_table works on all devices, not just platform devices. It allows the common library of device tree support routines to be used with any bus type. g. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/linux/device.h b/include/linux/device.h index ca5d252..8d8e267 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -441,6 +441,7 @@ struct device { struct dev_archdata archdata; struct device_node *of_node; /* associated device tree node */ + const struct of_device_id *of_match; /* matching of_device_id from driver */ dev_t devt; /* dev_t, creates the sysfs "dev" */ diff --git a/include/linux/of_device.h b/include/linux/of_device.h index 975d347..8bfe6c1 100644 --- a/include/linux/of_device.h +++ b/include/linux/of_device.h @@ -18,10 +18,11 @@ extern void of_device_make_bus_id(struct device *dev); * @drv: the device_driver structure to test * @dev: the device structure to match against */ -static inline int of_driver_match_device(const struct device *dev, +static inline int of_driver_match_device(struct device *dev, const struct device_driver *drv) { - return of_match_device(drv->of_match_table, dev) != NULL; + dev->of_match = of_match_device(drv->of_match_table, dev); + return dev->of_match != NULL; } extern struct platform_device *of_dev_get(struct platform_device *dev);
Add a new .of_match field to struct device which points at the matching device driver .of_match_table entry when a device is probed via the device tree Signed-off-by: Grant Likely <grant.likely@secretlab.ca> --- include/linux/device.h | 1 + include/linux/of_device.h | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html