Skip to content

Commit

Permalink
checks: Relax avoid_unnecessary_addr_size check to allow child ranges…
Browse files Browse the repository at this point in the history
… properties

Do not fail the unnecessary #address-cells/#size-cells check if any
children of the node have a "ranges" property.

Suggested-by: Rob Herring <[email protected]>
Link: https://lore.kernel.org/all/CAL_JsqKebRL454poAYZ9i=sCsHqGzmocLy0psQcng-79UWJB-A@mail.gmail.com/
Signed-off-by: Philipp Zabel <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: David Gibson <[email protected]>
  • Loading branch information
pH5 authored and dgibson committed Nov 27, 2024
1 parent 66c7d0e commit 6f183c7
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions checks.c
Original file line number Diff line number Diff line change
Expand Up @@ -1217,9 +1217,7 @@ WARNING(avoid_default_addr_size, check_avoid_default_addr_size, NULL,
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;
Expand All @@ -1228,13 +1226,18 @@ static void check_avoid_unnecessary_addr_size(struct check *c, struct dt_info *d
return;

for_each_child(node, child) {
prop = get_property(child, "reg");
if (prop)
has_reg = true;
/*
* Even if the child devices' address space is not mapped into
* the parent bus (no 'ranges' property on node), children can
* still have registers on a local bus, or map local addresses
* to another subordinate address space. The properties on the
* child nodes then make #address-cells/#size-cells necessary:
*/
if (get_property(child, "reg") || get_property(child, "ranges"))
return;
}

if (!has_reg)
FAIL(c, dti, node, "unnecessary #address-cells/#size-cells without \"ranges\", \"dma-ranges\" or child \"reg\" property");
FAIL(c, dti, node, "unnecessary #address-cells/#size-cells without \"ranges\", \"dma-ranges\" or child \"reg\" or \"ranges\" property");
}
WARNING(avoid_unnecessary_addr_size, check_avoid_unnecessary_addr_size, NULL, &avoid_default_addr_size);

Expand Down

0 comments on commit 6f183c7

Please sign in to comment.