diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2011-02-17 02:37:15 -0700 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-02-28 01:36:38 -0700 |
commit | b826291c14c396e7aa5d84523aafac117f430902 (patch) | |
tree | ebabdbe338cfef0d31fc3f5d77c23f264215eede /include | |
parent | 3d6b88282751a3329d7b041a8d18db87641db9e8 (diff) | |
download | linux-b826291c14c396e7aa5d84523aafac117f430902.tar.gz linux-b826291c14c396e7aa5d84523aafac117f430902.tar.bz2 linux-b826291c14c396e7aa5d84523aafac117f430902.zip |
drivercore/dt: add a match table pointer to struct device
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>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/device.h | 1 | ||||
-rw-r--r-- | 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 ca5d25225aab..8d8e2675d07f 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 975d347079d9..8bfe6c1d4365 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); |