xen/device-tree: Make dt_match_node match props

Make dt_match_node match for a single existing property.
We only search for the existence of the property, not
for specific values.

Acked-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
This commit is contained in:
Edgar E. Iglesias authored and Stefano Stabellini committed 2016-09-27 18:27:35 -07:00
1 parent ca1a2e956f
commit cef9cf36c8
2 files changed
+11 -1

No files matched your search

+4 -1
View File
@@ -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++;
+7
View File
@@ -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 property's
* 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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.