video: sunxi: de2: fix SimpleFB node creation when HDMI not initialized
authorIcenowy Zheng <icenowy@aosc.io>
Wed, 1 Nov 2017 14:18:06 +0000 (22:18 +0800)
committerJagan Teki <jagan@amarulasolutions.com>
Mon, 6 Nov 2017 08:13:28 +0000 (13:43 +0530)
When HDMI is not initialized (e.g. no monitor is plugged), the current
SimpleFB code will still create a broken SimpleFB node.

Detect whether HDMI is initialized when creating SimpleFB node.

Fixes: be5b96f0e411 ("sunxi: setup simplefb for Allwinner DE2")
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Reviewed-by: Jagan Teki <jagan@openedev.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/video/sunxi/sunxi_de2.c

index e8903400ec7e3a327d2f895d49b8b10e50f44e10..6d6bb2e0c3210254de64820f611d516b397466c8 100644 (file)
@@ -346,13 +346,19 @@ int sunxi_simplefb_setup(void *blob)
                                         "sunxi_dw_hdmi", &hdmi);
        if (ret) {
                debug("HDMI not present\n");
-               return 0;
+       } else if (device_active(hdmi)) {
+               if (mux == 0)
+                       pipeline = "mixer0-lcd0-hdmi";
+               else
+                       pipeline = "mixer1-lcd1-hdmi";
+       } else {
+               debug("HDMI present but not probed\n");
        }
 
-       if (mux == 0)
-               pipeline = "mixer0-lcd0-hdmi";
-       else
-               pipeline = "mixer1-lcd1-hdmi";
+       if (!pipeline) {
+               debug("No active display present\n");
+               return 0;
+       }
 
        de2_priv = dev_get_uclass_priv(de2);
        de2_plat = dev_get_uclass_platdata(de2);