[Crosstoolchain-logs] [device-tree-compiler] 20/29: checks: check for #{size, address}-cells without child nodes

Vagrant Cascadian vagrant at moszumanska.debian.org
Tue Jan 23 06:34:38 UTC 2018


This is an automated email from the git hooks/post-receive script.

vagrant pushed a commit to branch debian/master
in repository device-tree-compiler.

commit d0c44ebe3f4265dab3c9797eda1dacc569a1e953
Author: Rob Herring <robh at kernel.org>
Date:   Tue Dec 12 16:46:27 2017 -0600

    checks: check for #{size,address}-cells without child nodes
    
    Add a check for unnecessary "#{size,address}-cells" when there's neither
    a 'ranges' property nor child nodes with a 'reg' property.
    
    An exception may be an overlay that adds nodes, but this case would need
    "#{size,address}-cells" in the overlay to properly compile already.
    
    Signed-off-by: Rob Herring <robh at kernel.org>
    Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
---
 checks.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/checks.c b/checks.c
index e4f5cb9..e0ec67b 100644
--- a/checks.c
+++ b/checks.c
@@ -981,6 +981,31 @@ static void check_avoid_default_addr_size(struct check *c, struct dt_info *dti,
 WARNING(avoid_default_addr_size, check_avoid_default_addr_size, NULL,
 	&addr_size_cells);
 
+static void check_avoid_unnecessary_addr_size(struct check *c, struct dt_info *dti,
+					      struct node *node)
+{
+	struct property *prop;
+	struct node *child;
+	bool has_reg = false;
+
+	if (!node->parent || node->addr_cells < 0 || node->size_cells < 0)
+		return;
+
+	if (get_property(node, "ranges") || !node->children)
+		return;
+
+	for_each_child(node, child) {
+		prop = get_property(child, "reg");
+		if (prop)
+			has_reg = true;
+	}
+
+	if (!has_reg)
+		FAIL(c, dti, "unnecessary #address-cells/#size-cells without \"ranges\" or child \"reg\" property in %s",
+		     node->fullpath);
+}
+WARNING(avoid_unnecessary_addr_size, check_avoid_unnecessary_addr_size, NULL, &avoid_default_addr_size);
+
 static void check_obsolete_chosen_interrupt_controller(struct check *c,
 						       struct dt_info *dti,
 						       struct node *node)
@@ -1305,6 +1330,7 @@ static struct check *check_table[] = {
 	&simple_bus_reg,
 
 	&avoid_default_addr_size,
+	&avoid_unnecessary_addr_size,
 	&obsolete_chosen_interrupt_controller,
 
 	&clocks_property,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/crosstoolchain/device-tree-compiler.git



More information about the Crosstoolchain-logs mailing list