@@ -239,13 +239,24 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
struct drm_bridge **bridge)
{
int ret = -EPROBE_DEFER;
- struct device_node *remote;
+ struct device_node *local, *remote;
if (!panel && !bridge)
return -EINVAL;
if (panel)
*panel = NULL;
+ /*
+ * 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,
+ * so at first we silently check presence of the local port.
+ */
+ local = of_graph_get_local_port(np);
+ if (!local)
+ return -ENODEV;
+
+ of_node_put(local);
+
remote = of_graph_get_remote_node(np, port, endpoint);
if (!remote)
return -ENODEV;