On 22/05/2024 16:32, Michael Riesch wrote: > In device tree overlays, the following patterns occur frequently: > > board.dts: > /dts-v1/; > > / { > display-controller { > ports { > #address-cells = <1>; > #size-cells = <0>; > > vp0: port@0 { > reg = <0>; > > vp0_out: endpoint { > }; > }; > > vp1: port@1 { > reg = <1>; > }; > }; > }; > }; > > overlay-endpoint.dtso: > /dts-v1/; > /plugin/; > > &{/} { > hdmi-tx-connector { > port { > hdmi_tx_in: endpoint { > remote-endpoint = <&vp0_out>; > }; > }; > }; > }; > > &vp0_out { > remote-endpoint = <&hdmi_tx_in>; > }; > > In this case, dtc expects that the node referenced by &vp0_out is > named "endpoint", but the name cannot be inferred. Also, dtc > complains about the connections between the endpoints not being > bidirectional. > > Similarly, for a different overlay overlay-port.dtso: > /dts-v1/; > /plugin/; > > &{/} { > panel { > port { > panel_in: endpoint { > remote-endpoint = <&vp1_out>; > }; > }; > }; > }; > > &vp1 { > vp1_out: endpoint { > remote-endpoint = <&panel_in>; > }; > }; > > dtc expects that the node referenced by &vp1 is named "port", but the > name cannot be inferred. > > Relax the corresponding checks and skip the parts that are not reasonable > for device tree overlays. > > Cc: Heiko Stuebner <heiko@xxxxxxxxx> > Signed-off-by: Michael Riesch <michael.riesch@xxxxxxxxxxxxxx> > --- > Habidere, > > This patch fixes several warnings > - Warning (graph_port): /fragment@3: graph port node name should be > 'port' > - Warning (graph_endpoint): /fragment@3/__overlay__: graph endpoint > node name should be 'endpoint' > - Warning (graph_endpoint): /fragment@3/__overlay__: graph connection > to node '/fragment@2/__overlay__/.../port/endpoint' is not > bidirectional > that appear when compiling device tree overlays. > > This first warning popped up e.g., in the scope of [1], [2]. The latter > two warnings appear regularly when compiling our downstream overlays. As > we plan to submit them to mainline soon, we'll hit that blocker sooner or > later. > > Looking forward to your comments! > > Link: https://lore.kernel.org/lkml/20240412-feature-wolfvision-pf5-display-v1-1-f032f32dba1a@xxxxxxxxxxxxxx/ [1] > Link: https://lore.kernel.org/lkml/20240423082941.2626102-1-heiko@xxxxxxxxx/T/ [2] > --- > checks.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/checks.c b/checks.c > index 2fb7ee5..2ea5913 100644 > --- a/checks.c > +++ b/checks.c > @@ -1822,10 +1822,14 @@ static void check_graph_port(struct check *c, struct dt_info *dti, > if (node->bus != &graph_port_bus) > return; > > + check_graph_reg(c, dti, node); > + > + /* skip checks below for overlays */ > + if (dti->dtsflags & DTSF_PLUGIN) > + return; > + > if (!strprefixeq(node->name, node->basenamelen, "port")) > FAIL(c, dti, node, "graph port node name should be 'port'"); > - > - check_graph_reg(c, dti, node); > } > WARNING(graph_port, check_graph_port, NULL, &graph_nodes); > > @@ -1860,11 +1864,15 @@ static void check_graph_endpoint(struct check *c, struct dt_info *dti, > if (!node->parent || node->parent->bus != &graph_port_bus) > return; > > + check_graph_reg(c, dti, node); > + > + /* skip checks below for overlays */ > + if (dti->dtsflags & DTSF_PLUGIN) > + return; > + > if (!strprefixeq(node->name, node->basenamelen, "endpoint")) > FAIL(c, dti, node, "graph endpoint node name should be 'endpoint'"); > > - check_graph_reg(c, dti, node); > - > remote_node = get_remote_endpoint(c, dti, node); > if (!remote_node) > return; > > --- > base-commit: ae26223a056e040b2d812202283d47c6e034d063 > change-id: 20240522-bugfix-relax-checks-for-overlays-e72b11df44a1 > > Best regards, Not sure if that might be a valid solution, but including "rk356x.dtsi" (where the nodes referenced by the phandles reside) removes those warnings. Best regards, Javier Carrasco