drm/msm: Only add available components
authorDouglas Anderson <dianders@chromium.org>
Tue, 4 Dec 2018 18:04:41 +0000 (10:04 -0800)
committerRob Clark <robdclark@gmail.com>
Tue, 11 Dec 2018 18:07:09 +0000 (13:07 -0500)
When trying to get the display up on my sdm845 board I noticed that
the display wouldn't probe if I had the dsi1 node marked as "disabled"
even though my board doesn't use dsi1.  It looks like the msm code
adds all nodes to its list of components even if they are disabled.  I
believe this doesn't work because all registered components need to
come up before we finish probing.  Let's do like other DRM code and
only add available components.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/msm_drv.c

index 1a3b80d317265053630ed3f372373d0422d1d3c4..7661ca71fca69c4565dd0b8e96060cd5f7a5d772 100644 (file)
@@ -1256,8 +1256,10 @@ static int add_components_mdp(struct device *mdp_dev,
                if (!intf)
                        continue;
 
-               drm_of_component_match_add(master_dev, matchptr, compare_of,
-                                          intf);
+               if (of_device_is_available(intf))
+                       drm_of_component_match_add(master_dev, matchptr,
+                                                  compare_of, intf);
+
                of_node_put(intf);
        }