scripts: dtc: delete empty node after omit_unused_nodes

A node is empty node if its proplist/label/child both null or both
set as deleted.

Change-Id: Ia934c58df3305dc9531cc912322eb2728f7af689
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This commit is contained in:
Jianqun Xu
2020-11-30 16:29:24 +08:00
committed by Tao Huang
parent 6110f21e08
commit d709fc7b79

View File

@@ -650,6 +650,24 @@ static void fixup_omit_unused_nodes(struct check *c, struct dt_info *dti,
{
if (node->omit_if_unused && !node->is_referenced)
delete_node(node);
if (node->deleted) {
struct node *parent = node->parent;
struct node *child;
struct label *label;
struct property *prop;
for_each_label(parent->labels, label)
return;
for_each_property(parent, prop)
return;
for_each_child(parent, child)
return;
delete_node(parent);
}
}
ERROR(omit_unused_nodes, fixup_omit_unused_nodes, NULL, &phandle_references, &path_references);