diff mbox series

[V2,4/4] common: spl: spl: Remove video driver before u-boot proper

Message ID 20230410084913.35116-5-n-jain1@ti.com
State Accepted
Commit 7a17e4c6f1019296a12fc68005916f11de6db928
Delegated to: Tom Rini
Headers show
Series Enable SPL splash screen on AM62x | expand

Commit Message

Nikhil Jain April 10, 2023, 8:49 a.m. UTC
Add method to remove video driver before loading u-boot proper. When
bootstage changes from SPL to u-boot proper, noo method is called to
remove video driver, and at u-boot proper if video driver is not
enabled, the video driver starts displaying garbage on the screen,
because there is no reserved space for video and the frame buffer gets
u-boot proper data written.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V2:
- No change.

 common/spl/spl.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
diff mbox series

Patch

diff --git a/common/spl/spl.c b/common/spl/spl.c
index a630e79866..72078a8ebc 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -35,6 +35,8 @@ 
 #include <mapmem.h>
 #include <dm/root.h>
 #include <dm/util.h>
+#include <dm/device-internal.h>
+#include <dm/uclass-internal.h>
 #include <linux/compiler.h>
 #include <fdt_support.h>
 #include <bootcount.h>
@@ -889,6 +891,19 @@  void board_init_r(gd_t *dummy1, ulong dummy2)
 		debug("Failed to stash bootstage: err=%d\n", ret);
 #endif
 
+#if defined(CONFIG_SPL_VIDEO)
+	struct udevice *dev;
+	int rc;
+
+	rc = uclass_find_device(UCLASS_VIDEO, 0, &dev);
+	if (!rc && dev) {
+		rc = device_remove(dev, DM_REMOVE_NORMAL);
+		if (rc)
+			printf("Cannot remove video device '%s' (err=%d)\n",
+			       dev->name, rc);
+	}
+#endif
+
 	spl_board_prepare_for_boot();
 	jump_to_image_no_args(&spl_image);
 }