drm/sun4i: Don't check for panel or bridge on TV TCONs
authorJernej Skrabec <jernej.skrabec@siol.net>
Mon, 25 Jun 2018 12:02:52 +0000 (14:02 +0200)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Wed, 27 Jun 2018 19:43:56 +0000 (21:43 +0200)
TV TCONs are always connected to TV or HDMI encoder, so it doesn't make
sense to check if panel or bridge is connected to them.

Check if TCON has channel 0 and only then check for connected panel or
bridges.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180625120304.7543-13-jernej.skrabec@siol.net
drivers/gpu/drm/sun4i/sun4i_tcon.c

index 761687ebacbaee01867808f30127a1399514f3e7..a41c7bb0d557c5af2cf1ccd39b36b645ed4a384d 100644 (file)
@@ -1178,13 +1178,19 @@ static const struct component_ops sun4i_tcon_ops = {
 static int sun4i_tcon_probe(struct platform_device *pdev)
 {
        struct device_node *node = pdev->dev.of_node;
+       const struct sun4i_tcon_quirks *quirks;
        struct drm_bridge *bridge;
        struct drm_panel *panel;
        int ret;
 
-       ret = drm_of_find_panel_or_bridge(node, 1, 0, &panel, &bridge);
-       if (ret == -EPROBE_DEFER)
-               return ret;
+       quirks = of_device_get_match_data(&pdev->dev);
+
+       /* panels and bridges are present only on TCONs with channel 0 */
+       if (quirks->has_channel_0) {
+               ret = drm_of_find_panel_or_bridge(node, 1, 0, &panel, &bridge);
+               if (ret == -EPROBE_DEFER)
+                       return ret;
+       }
 
        return component_add(&pdev->dev, &sun4i_tcon_ops);
 }