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 6e488e859f
commit 57c92c0734

View File

@ -649,6 +649,24 @@ static void fixup_omit_unused_nodes(struct check *c, struct dt_info *dti,
return;
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);