Commit b089c0a9 authored by Bjorn Andersson's avatar Bjorn Andersson Committed by Maxime Ripard

Revert "drm: of: Lookup if child node has panel or bridge"

Commit '80253168 ("drm: of: Lookup if child node has panel or
bridge")' attempted to simplify the case of expressing a simple panel
under a DSI controller, by assuming that the first non-graph child node
was a panel or bridge.

Unfortunately for non-trivial cases the first child node might not be a
panel or bridge.  Examples of this can be a aux-bus in the case of
DisplayPort, or an opp-table represented before the panel node.

In these cases the reverted commit prevents the caller from ever finding
a reference to the panel.

This reverts commit '80253168 ("drm: of: Lookup if child node has
panel or bridge")', in favor of using an explicit graph reference to the
panel in the trivial case as well.
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220420231230.58499-2-bjorn.andersson@linaro.org
parent 169466d4
...@@ -244,21 +244,6 @@ int drm_of_find_panel_or_bridge(const struct device_node *np, ...@@ -244,21 +244,6 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
if (panel) if (panel)
*panel = NULL; *panel = NULL;
/**
* Devices can also be child nodes when we also control that device
* through the upstream device (ie, MIPI-DCS for a MIPI-DSI device).
*
* Lookup for a child node of the given parent that isn't either port
* or ports.
*/
for_each_available_child_of_node(np, remote) {
if (of_node_name_eq(remote, "port") ||
of_node_name_eq(remote, "ports"))
continue;
goto of_find_panel_or_bridge;
}
/* /*
* of_graph_get_remote_node() produces a noisy error message if port * of_graph_get_remote_node() produces a noisy error message if port
* node isn't found and the absence of the port is a legit case here, * node isn't found and the absence of the port is a legit case here,
...@@ -269,8 +254,6 @@ int drm_of_find_panel_or_bridge(const struct device_node *np, ...@@ -269,8 +254,6 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
return -ENODEV; return -ENODEV;
remote = of_graph_get_remote_node(np, port, endpoint); remote = of_graph_get_remote_node(np, port, endpoint);
of_find_panel_or_bridge:
if (!remote) if (!remote)
return -ENODEV; return -ENODEV;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment