mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
checks: Remove check for graph child addresses
The dtc graph_child_address check can't distinguish between bindings where there can only be a single endpoint, and cases where there can be multiple endpoints. In cases where the bindings allow for multiple endpoints but only one is described false warnings about unnecessary #address-cells/#size-cells can be generated, but only if the endpoint described have an address of 0 (A), for single endpoints with a non-zero address (B) no warnings are generated. A) ports { #address-cells = <1>; #size-cells = <0>; port@0 { #address-cells = <1>; #size-cells = <0>; sourceA: endpoint@0 { reg = <0> }; }; }; B) ports { #address-cells = <1>; #size-cells = <0>; port@0 { #address-cells = <1>; #size-cells = <0>; sourceB: endpoint@1 { reg = <1> }; }; }; Remove the check as it is somewhat redundant now that we can use schemas to validate the full node. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Message-ID: <20250817133733.3483922-1-niklas.soderlund+renesas@ragnatech.se> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
763c6ab418
commit
cba90ce820
2 changed files with 1 additions and 28 deletions
27
checks.c
27
checks.c
|
@ -1894,31 +1894,6 @@ static void check_graph_endpoint(struct check *c, struct dt_info *dti,
|
||||||
}
|
}
|
||||||
WARNING(graph_endpoint, check_graph_endpoint, NULL, &graph_nodes);
|
WARNING(graph_endpoint, check_graph_endpoint, NULL, &graph_nodes);
|
||||||
|
|
||||||
static void check_graph_child_address(struct check *c, struct dt_info *dti,
|
|
||||||
struct node *node)
|
|
||||||
{
|
|
||||||
int cnt = 0;
|
|
||||||
struct node *child;
|
|
||||||
|
|
||||||
if (node->bus != &graph_ports_bus && node->bus != &graph_port_bus)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for_each_child(node, child) {
|
|
||||||
struct property *prop = get_property(child, "reg");
|
|
||||||
|
|
||||||
/* No error if we have any non-zero unit address */
|
|
||||||
if (prop && propval_cell(prop) != 0 )
|
|
||||||
return;
|
|
||||||
|
|
||||||
cnt++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cnt == 1 && node->addr_cells != -1)
|
|
||||||
FAIL(c, dti, node, "graph node has single child node '%s', #address-cells/#size-cells are not necessary",
|
|
||||||
node->children->name);
|
|
||||||
}
|
|
||||||
WARNING(graph_child_address, check_graph_child_address, NULL, &graph_nodes, &graph_port, &graph_endpoint);
|
|
||||||
|
|
||||||
static struct check *check_table[] = {
|
static struct check *check_table[] = {
|
||||||
&duplicate_node_names, &duplicate_property_names,
|
&duplicate_node_names, &duplicate_property_names,
|
||||||
&node_name_chars, &node_name_format, &property_name_chars,
|
&node_name_chars, &node_name_format, &property_name_chars,
|
||||||
|
@ -2005,7 +1980,7 @@ static struct check *check_table[] = {
|
||||||
|
|
||||||
&alias_paths,
|
&alias_paths,
|
||||||
|
|
||||||
&graph_nodes, &graph_child_address, &graph_port, &graph_endpoint,
|
&graph_nodes, &graph_port, &graph_endpoint,
|
||||||
|
|
||||||
&always_fail,
|
&always_fail,
|
||||||
};
|
};
|
||||||
|
|
|
@ -749,7 +749,6 @@ dtc_tests () {
|
||||||
check_tests "$SRCDIR/bad-phandle-cells.dts" interrupts_extended_property
|
check_tests "$SRCDIR/bad-phandle-cells.dts" interrupts_extended_property
|
||||||
check_tests "$SRCDIR/bad-gpio.dts" gpios_property
|
check_tests "$SRCDIR/bad-gpio.dts" gpios_property
|
||||||
check_tests "$SRCDIR/good-gpio.dts" -n gpios_property
|
check_tests "$SRCDIR/good-gpio.dts" -n gpios_property
|
||||||
check_tests "$SRCDIR/bad-graph.dts" graph_child_address
|
|
||||||
check_tests "$SRCDIR/bad-graph.dts" graph_port
|
check_tests "$SRCDIR/bad-graph.dts" graph_port
|
||||||
check_tests "$SRCDIR/bad-graph.dts" graph_endpoint
|
check_tests "$SRCDIR/bad-graph.dts" graph_endpoint
|
||||||
check_tests "$SRCDIR/bad-graph-root1.dts" graph_nodes
|
check_tests "$SRCDIR/bad-graph-root1.dts" graph_nodes
|
||||||
|
@ -758,7 +757,6 @@ dtc_tests () {
|
||||||
check_tests "$SRCDIR/bad-graph-root4.dts" graph_nodes
|
check_tests "$SRCDIR/bad-graph-root4.dts" graph_nodes
|
||||||
check_tests "$SRCDIR/bad-graph-reg-cells.dts" graph_endpoint
|
check_tests "$SRCDIR/bad-graph-reg-cells.dts" graph_endpoint
|
||||||
check_tests "$SRCDIR/bad-graph-reg-cells.dts" graph_port
|
check_tests "$SRCDIR/bad-graph-reg-cells.dts" graph_port
|
||||||
check_tests "$SRCDIR/bad-graph-child-address.dts" graph_child_address
|
|
||||||
run_sh_test "$SRCDIR/dtc-checkfails.sh" deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb "$SRCDIR/bad-gpio.dts"
|
run_sh_test "$SRCDIR/dtc-checkfails.sh" deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb "$SRCDIR/bad-gpio.dts"
|
||||||
run_sh_test "$SRCDIR/dtc-checkfails.sh" -n deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb "$SRCDIR/good-gpio.dts"
|
run_sh_test "$SRCDIR/dtc-checkfails.sh" -n deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb "$SRCDIR/good-gpio.dts"
|
||||||
check_tests "$SRCDIR/bad-interrupt-cells.dts" interrupts_property
|
check_tests "$SRCDIR/bad-interrupt-cells.dts" interrupts_property
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue