mirror of
https://github.com/dgibson/dtc.git
synced 2026-04-11 16:37:42 -04:00
dtc: Strip redundant "name" properties
If an input device tree has "name" properties which are correct, then they are redundant (because they can be derived from the unit name). Therefore, extend the checking code for correctness of "name" properties to remove them if they are correct. dtc will still insert name properties in the output if that's of a sufficiently old version to require them. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
2b3a96761a
commit
d028e84140
1 changed files with 13 additions and 2 deletions
15
checks.c
15
checks.c
|
|
@ -316,9 +316,14 @@ NODE_CHECK(explicit_phandles, NULL, ERROR);
|
|||
static void check_name_properties(struct check *c, struct node *root,
|
||||
struct node *node)
|
||||
{
|
||||
struct property *prop;
|
||||
struct property **pp, *prop = NULL;
|
||||
|
||||
for (pp = &node->proplist; *pp; pp = &((*pp)->next))
|
||||
if (streq((*pp)->name, "name")) {
|
||||
prop = *pp;
|
||||
break;
|
||||
}
|
||||
|
||||
prop = get_property(node, "name");
|
||||
if (!prop)
|
||||
return; /* No name property, that's fine */
|
||||
|
||||
|
|
@ -326,6 +331,12 @@ static void check_name_properties(struct check *c, struct node *root,
|
|||
|| (memcmp(prop->val.val, node->name, node->basenamelen) != 0))
|
||||
FAIL(c, "\"name\" property in %s is incorrect (\"%s\" instead"
|
||||
" of base node name)", node->fullpath, prop->val.val);
|
||||
|
||||
/* The name property is correct, and therefore redundant. Delete it */
|
||||
*pp = prop->next;
|
||||
free(prop->name);
|
||||
data_free(prop->val);
|
||||
free(prop);
|
||||
}
|
||||
CHECK_IS_STRING(name_is_string, "name", ERROR);
|
||||
NODE_CHECK(name_properties, NULL, ERROR, &name_is_string);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue