|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v01 1/3] xen:dt: add match for non-available nodes
From: Andrii Anisov <andrii.anisov@xxxxxxxxxxxxxxx>
Signed-off-by: Andrii Anisov <andrii.anisov@xxxxxxxxxxxxxxx>
---
xen/common/device_tree.c | 6 +++++-
xen/include/xen/device_tree.h | 2 ++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 55716a8..f0bd7b9 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -692,7 +692,8 @@ bool_t dt_match_node(const struct dt_device_match *matches,
if ( !matches )
return 0;
- while ( matches->path || matches->type || matches->compatible )
+ while ( matches->path || matches->type ||
+ matches->compatible || matches->nav)
{
bool_t match = 1;
@@ -705,6 +706,9 @@ bool_t dt_match_node(const struct dt_device_match *matches,
if ( matches->compatible )
match &= dt_device_is_compatible(node, matches->compatible);
+ if ( matches->nav )
+ match &= !dt_device_is_available(node);
+
if ( match )
return match;
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 9a8c3de..99de53f 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -62,11 +62,13 @@ struct dt_device_match {
const char *path;
const char *type;
const char *compatible;
+ int nav;
};
#define DT_MATCH_PATH(p) { .path = p }
#define DT_MATCH_TYPE(typ) { .type = typ }
#define DT_MATCH_COMPATIBLE(compat) { .compatible = compat }
+#define DT_MATCH_NOT_AVAILABLE() { .nav = 1 }
typedef u32 dt_phandle;
--
1.7.9.5
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |