summaryrefslogtreecommitdiff
path: root/drivers/of/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/of/base.c')
-rw-r--r--drivers/of/base.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 180dbce65b98..a650c91897cc 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -463,13 +463,12 @@ int of_machine_read_model(const char **model)
EXPORT_SYMBOL_GPL(of_machine_read_model);
/**
- * of_machine_device_match - Test root of device tree against a of_device_id array
+ * of_machine_get_match - Test root of device tree against an of_device_id array
* @matches: NULL terminated array of of_device_id match structures to search in
*
- * Returns true if the root node has any of the given compatible values in its
- * compatible property.
+ * Returns matched entry or NULL
*/
-bool of_machine_device_match(const struct of_device_id *matches)
+const struct of_device_id *of_machine_get_match(const struct of_device_id *matches)
{
struct device_node *root;
const struct of_device_id *match = NULL;
@@ -480,9 +479,9 @@ bool of_machine_device_match(const struct of_device_id *matches)
of_node_put(root);
}
- return match != NULL;
+ return match;
}
-EXPORT_SYMBOL(of_machine_device_match);
+EXPORT_SYMBOL(of_machine_get_match);
/**
* of_machine_get_match_data - Tell if root of device tree has a matching of_match structure
@@ -493,15 +492,8 @@ EXPORT_SYMBOL(of_machine_device_match);
const void *of_machine_get_match_data(const struct of_device_id *matches)
{
const struct of_device_id *match;
- struct device_node *root;
-
- root = of_find_node_by_path("/");
- if (!root)
- return NULL;
-
- match = of_match_node(matches, root);
- of_node_put(root);
+ match = of_machine_get_match(matches);
if (!match)
return NULL;