]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
common: spl: spl: Remove video driver before u-boot proper
authorNikhil M Jain <n-jain1@ti.com>
Mon, 10 Apr 2023 08:49:13 +0000 (14:19 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 8 May 2023 13:26:12 +0000 (09:26 -0400)
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>
common/spl/spl.c

index a630e798661fd2bde93acfa3af0f554f7bb273a8..72078a8ebc8ec8669ceffa8254e9527553250b54 100644 (file)
@@ -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);
 }