Hi Edgar,
On 07/09/2016 08:56, Edgar E. Iglesias wrote:
From: "Edgar E. Iglesias" <edgar.igles...@xilinx.com>
Make dt_match_node match for existing properties.
We only search for the existence of the properties, not
for specific values.
Signed-off-by: Edgar E. Iglesias <edgar.igles...@xilinx.com>
---
xen/common/device_tree.c | 5 ++++-
xen/include/xen/device_tree.h | 7 +++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index b39c8ca..1be074b 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -319,7 +319,7 @@ dt_match_node(const struct dt_device_match *matches,
return NULL;
while ( matches->path || matches->type ||
- matches->compatible || matches->not_available )
+ matches->compatible || matches->not_available || matches->prop)
{
bool_t match = 1;
@@ -335,6 +335,9 @@ dt_match_node(const struct dt_device_match *matches,
if ( matches->not_available )
match &= !dt_device_is_available(node);
+ if ( matches->prop )
+ match &= dt_find_property(node, matches->prop, NULL) != NULL;
+
if ( match )
return matches;
matches++;
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index da153a5..c71ddb9 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -29,6 +29,11 @@ struct dt_device_match {
const char *type;
const char *compatible;
const bool_t not_available;
+ /*
+ * Property name to search for. We only search for the properties
NIT: s/the properties/the property/ I think same.
I think this also apply for the commit message?
The rest of the patch looks good to me:
Acked-by: Julien Grall <julien.gr...@arm.com>
Regards,
+ * existence.
+ */
+ const char *prop;
const void *data;
};
@@ -36,11 +41,13 @@ struct dt_device_match {
#define __DT_MATCH_TYPE(typ) .type = typ
#define __DT_MATCH_COMPATIBLE(compat) .compatible = compat
#define __DT_MATCH_NOT_AVAILABLE() .not_available = 1
+#define __DT_MATCH_PROP(p) .prop = p
#define DT_MATCH_PATH(p) { __DT_MATCH_PATH(p) }
#define DT_MATCH_TYPE(typ) { __DT_MATCH_TYPE(typ) }
#define DT_MATCH_COMPATIBLE(compat) { __DT_MATCH_COMPATIBLE(compat) }
#define DT_MATCH_NOT_AVAILABLE() { __DT_MATCH_NOT_AVAILABLE() }
+#define DT_MATCH_PROP(p) { __DT_MATCH_PROP(p) }
typedef u32 dt_phandle;
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel