From d709fc7b79877cdcbb31c0a694eedd3ccfcb767b Mon Sep 17 00:00:00 2001 From: Jianqun Xu Date: Mon, 30 Nov 2020 16:29:24 +0800 Subject: [PATCH] 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 --- scripts/dtc/checks.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c index 6302fa143331..d2165587da1c 100644 --- a/scripts/dtc/checks.c +++ b/scripts/dtc/checks.c @@ -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);