From 460b15adc9baab3dd403191b14c34647a24c1fcc Mon Sep 17 00:00:00 2001
From: Icenowy Zheng <icenowy@aosc.io>
Date: Wed, 1 Nov 2017 22:18:06 +0800
Subject: [PATCH] video: sunxi: de2: fix SimpleFB node creation when HDMI not
 initialized

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 | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/video/sunxi/sunxi_de2.c b/drivers/video/sunxi/sunxi_de2.c
index e8903400ec..6d6bb2e0c3 100644
--- a/drivers/video/sunxi/sunxi_de2.c
+++ b/drivers/video/sunxi/sunxi_de2.c
@@ -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);
-- 
2.39.5