return dev->of_node == data;
 }
 
-/* Possible connectors nodes to ignore */
-static const struct of_device_id connectors_match[] = {
-       { .compatible = "composite-video-connector" },
-       { .compatible = "svideo-connector" },
-       { .compatible = "hdmi-connector" },
-       { .compatible = "dvi-connector" },
-       {}
-};
-
-static int meson_probe_remote(struct platform_device *pdev,
-                             struct component_match **match,
-                             struct device_node *parent,
-                             struct device_node *remote)
-{
-       struct device_node *ep, *remote_node;
-       int count = 1;
-
-       /* If node is a connector, return and do not add to match table */
-       if (of_match_node(connectors_match, remote))
-               return 1;
-
-       component_match_add(&pdev->dev, match, compare_of, remote);
-
-       for_each_endpoint_of_node(remote, ep) {
-               remote_node = of_graph_get_remote_port_parent(ep);
-               if (!remote_node ||
-                   remote_node == parent || /* Ignore parent endpoint */
-                   !of_device_is_available(remote_node)) {
-                       of_node_put(remote_node);
-                       continue;
-               }
-
-               count += meson_probe_remote(pdev, match, remote, remote_node);
-
-               of_node_put(remote_node);
-       }
-
-       return count;
-}
-
 static void meson_drv_shutdown(struct platform_device *pdev)
 {
        struct meson_drm *priv = dev_get_drvdata(&pdev->dev);
        drm_atomic_helper_shutdown(priv->drm);
 }
 
+/* Possible connectors nodes to ignore */
+static const struct of_device_id connectors_match[] = {
+       { .compatible = "composite-video-connector" },
+       { .compatible = "svideo-connector" },
+       {}
+};
+
 static int meson_drv_probe(struct platform_device *pdev)
 {
        struct component_match *match = NULL;
                        continue;
                }
 
-               count += meson_probe_remote(pdev, &match, np, remote);
+               /* If an analog connector is detected, count it as an output */
+               if (of_match_node(connectors_match, remote)) {
+                       ++count;
+                       of_node_put(remote);
+                       continue;
+               }
+
+               dev_dbg(&pdev->dev, "parent %pOF remote match add %pOF parent %s\n",
+                       np, remote, dev_name(&pdev->dev));
+
+               component_match_add(&pdev->dev, &match, compare_of, remote);
+
                of_node_put(remote);
+
+               ++count;
        }
 
        if (count && !match)