aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/macintosh/macio_asic.c5
-rw-r--r--drivers/of/device.c9
-rw-r--r--drivers/of/platform.c5
-rw-r--r--include/linux/of_device.h2
4 files changed, 9 insertions, 12 deletions
diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
index e3ba1d8001a3..97147804a49c 100644
--- a/drivers/macintosh/macio_asic.c
+++ b/drivers/macintosh/macio_asic.c
@@ -39,13 +39,12 @@ static struct macio_chip *macio_on_hold;
39 39
40static int macio_bus_match(struct device *dev, struct device_driver *drv) 40static int macio_bus_match(struct device *dev, struct device_driver *drv)
41{ 41{
42 struct macio_dev * macio_dev = to_macio_device(dev);
43 const struct of_device_id * matches = drv->of_match_table; 42 const struct of_device_id * matches = drv->of_match_table;
44 43
45 if (!matches) 44 if (!matches)
46 return 0; 45 return 0;
47 46
48 return of_match_device(matches, &macio_dev->ofdev) != NULL; 47 return of_match_device(matches, dev) != NULL;
49} 48}
50 49
51struct macio_dev *macio_dev_get(struct macio_dev *dev) 50struct macio_dev *macio_dev_get(struct macio_dev *dev)
@@ -83,7 +82,7 @@ static int macio_device_probe(struct device *dev)
83 82
84 macio_dev_get(macio_dev); 83 macio_dev_get(macio_dev);
85 84
86 match = of_match_device(drv->driver.of_match_table, &macio_dev->ofdev); 85 match = of_match_device(drv->driver.of_match_table, dev);
87 if (match) 86 if (match)
88 error = drv->probe(macio_dev, match); 87 error = drv->probe(macio_dev, match);
89 if (error) 88 if (error)
diff --git a/drivers/of/device.c b/drivers/of/device.c
index 24068bbbce1a..7d18f8e0b013 100644
--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -10,8 +10,7 @@
10#include <asm/errno.h> 10#include <asm/errno.h>
11 11
12/** 12/**
13 * of_match_device - Tell if an of_device structure has a matching 13 * of_match_device - Tell if a struct device matches an of_device_id list
14 * of_match structure
15 * @ids: array of of device match structures to search in 14 * @ids: array of of device match structures to search in
16 * @dev: the of device structure to match against 15 * @dev: the of device structure to match against
17 * 16 *
@@ -19,11 +18,11 @@
19 * system is in its list of supported devices. 18 * system is in its list of supported devices.
20 */ 19 */
21const struct of_device_id *of_match_device(const struct of_device_id *matches, 20const struct of_device_id *of_match_device(const struct of_device_id *matches,
22 const struct of_device *dev) 21 const struct device *dev)
23{ 22{
24 if (!dev->dev.of_node) 23 if (!dev->of_node)
25 return NULL; 24 return NULL;
26 return of_match_node(matches, dev->dev.of_node); 25 return of_match_node(matches, dev->of_node);
27} 26}
28EXPORT_SYMBOL(of_match_device); 27EXPORT_SYMBOL(of_match_device);
29 28
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index ba402c613ede..7dacc1ebe91e 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -21,13 +21,12 @@ extern struct device_attribute of_platform_device_attrs[];
21 21
22static int of_platform_bus_match(struct device *dev, struct device_driver *drv) 22static int of_platform_bus_match(struct device *dev, struct device_driver *drv)
23{ 23{
24 struct of_device *of_dev = to_of_device(dev);
25 const struct of_device_id *matches = drv->of_match_table; 24 const struct of_device_id *matches = drv->of_match_table;
26 25
27 if (!matches) 26 if (!matches)
28 return 0; 27 return 0;
29 28
30 return of_match_device(matches, of_dev) != NULL; 29 return of_match_device(matches, dev) != NULL;
31} 30}
32 31
33static int of_platform_device_probe(struct device *dev) 32static int of_platform_device_probe(struct device *dev)
@@ -45,7 +44,7 @@ static int of_platform_device_probe(struct device *dev)
45 44
46 of_dev_get(of_dev); 45 of_dev_get(of_dev);
47 46
48 match = of_match_device(drv->driver.of_match_table, of_dev); 47 match = of_match_device(drv->driver.of_match_table, dev);
49 if (match) 48 if (match)
50 error = drv->probe(of_dev, match); 49 error = drv->probe(of_dev, match);
51 if (error) 50 if (error)
diff --git a/include/linux/of_device.h b/include/linux/of_device.h
index e7904a9cd3a3..11651facc5f1 100644
--- a/include/linux/of_device.h
+++ b/include/linux/of_device.h
@@ -11,7 +11,7 @@
11#define to_of_device(d) container_of(d, struct of_device, dev) 11#define to_of_device(d) container_of(d, struct of_device, dev)
12 12
13extern const struct of_device_id *of_match_device( 13extern const struct of_device_id *of_match_device(
14 const struct of_device_id *matches, const struct of_device *dev); 14 const struct of_device_id *matches, const struct device *dev);
15 15
16extern struct of_device *of_dev_get(struct of_device *dev); 16extern struct of_device *of_dev_get(struct of_device *dev);
17extern void of_dev_put(struct of_device *dev); 17extern void of_dev_put(struct of_device *dev);