[PATCH 1/3] of: Add of_match_machine helper
From: Grant Likely <hidden>
Date: 2014-08-18 02:34:07
Also in:
linux-devicetree, linux-pm, linux-tegra, lkml
On Fri, 8 Aug 2014 02:01:53 +0300, Tuomas Tynkkynen [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Add of_match_machine function to test the device tree root for an of_match array. This can be useful when testing SoC versions at runtime, for example. Signed-off-by: Tuomas Tynkkynen <redacted> --- drivers/of/base.c | 21 +++++++++++++++++++++ include/linux/of.h | 3 +++ 2 files changed, 24 insertions(+)diff --git a/drivers/of/base.c b/drivers/of/base.c index d8574ad..37798ea 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c@@ -977,6 +977,27 @@ struct device_node *of_find_matching_node_and_match(struct device_node *from, EXPORT_SYMBOL(of_find_matching_node_and_match); /** + * of_match_machine - Tell if root of device tree has a matching of_match struct + * @matches: array of of device match structures to search in + * + * Returns the result of of_match_node for the root node. + */ +const struct of_device_id *of_match_machine(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); + return match; +} +EXPORT_SYMBOL(of_match_machine);
Too wordy... return of_match_node(matches, of_allnodes); :-) It could be a static inline, but I don't think it's even worth having a helper. The callers could just open code the above. g.