drm/sun4i: Ignore the generic connectors for components
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Sat, 27 May 2017 16:09:32 +0000 (18:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Apr 2018 17:48:15 +0000 (19:48 +0200)
[ Upstream commit 49baeb074783f5bdf770dc9fac5fbb2837190583 ]

The generic connectors such as hdmi-connector doesn't have any driver in,
so if they are added to the component list, we will be waiting forever for
a non-existing driver to probe.

Add a list of the connectors we want to ignore when building our component
list.

Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/sun4i/sun4i_drv.c

index 9e77fc034e0a7a9bfbb522494586cea7cff211c2..aad2f4a2a0ef1ede385d00bf3bbdbde82f2e4b0a 100644 (file)
@@ -212,6 +212,11 @@ static const struct component_master_ops sun4i_drv_master_ops = {
        .unbind = sun4i_drv_unbind,
 };
 
+static bool sun4i_drv_node_is_connector(struct device_node *node)
+{
+       return of_device_is_compatible(node, "hdmi-connector");
+}
+
 static bool sun4i_drv_node_is_frontend(struct device_node *node)
 {
        return of_device_is_compatible(node, "allwinner,sun5i-a13-display-frontend") ||
@@ -252,6 +257,13 @@ static int sun4i_drv_add_endpoints(struct device *dev,
            !of_device_is_available(node))
                return 0;
 
+       /*
+        * The connectors will be the last nodes in our pipeline, we
+        * can just bail out.
+        */
+       if (sun4i_drv_node_is_connector(node))
+               return 0;
+
        if (!sun4i_drv_node_is_frontend(node)) {
                /* Add current component */
                DRM_DEBUG_DRIVER("Adding component %s\n",