diff options
author | Tom Rini <trini@konsulko.com> | 2019-06-10 09:41:19 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-06-10 09:41:19 -0400 |
commit | 99e14d5249a1b46ec4a4321d6125449a8f09b549 (patch) | |
tree | 6e5e4d72c8dbb4a542782514410c59181e0b1752 /common | |
parent | eb53a18c9e903e35e8e8d52da96c33b63822881c (diff) | |
parent | f944b15966d410fd81f6051a836f86d5263f617e (diff) | |
download | u-boot-99e14d5249a1b46ec4a4321d6125449a8f09b549.tar.gz |
Merge tag 'video-updates-for-2019.07-rc3' of git://git.denx.de/u-boot-video
- mxsfb DM_VIDEO conversion
- splash fix for DM_VIDEO configurations
- meson HDMI fix for boards without hdmi-supply regulator
Diffstat (limited to 'common')
-rw-r--r-- | common/lcd.c | 13 | ||||
-rw-r--r-- | common/splash.c | 16 | ||||
-rw-r--r-- | common/stdio.c | 4 |
3 files changed, 22 insertions, 11 deletions
diff --git a/common/lcd.c b/common/lcd.c index 95526b1e17..b34754fe51 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -171,8 +171,7 @@ int drv_lcd_init(void) void lcd_clear(void) { int bg_color; - char *s; - ulong addr; + __maybe_unused ulong addr; static int do_splash = 1; #if LCD_BPP == LCD_COLOR8 /* Setting the palette */ @@ -222,14 +221,10 @@ void lcd_clear(void) /* Paint the logo and retrieve LCD base address */ debug("[LCD] Drawing the logo...\n"); if (do_splash) { - s = env_get("splashimage"); - if (s) { + if (splash_display() == 0) { do_splash = 0; - addr = simple_strtoul(s, NULL, 16); - if (lcd_splash(addr) == 0) { - lcd_sync(); - return; - } + lcd_sync(); + return; } } diff --git a/common/splash.c b/common/splash.c index d251b3b654..79d50577ee 100644 --- a/common/splash.c +++ b/common/splash.c @@ -80,11 +80,23 @@ void splash_get_pos(int *x, int *y) } #endif /* CONFIG_SPLASH_SCREEN_ALIGN */ -#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_LCD) -int lcd_splash(ulong addr) +/* + * Common function to show a splash image if env("splashimage") is set. + * Is used for both dm_video and lcd video stacks. For additional + * details please refer to doc/README.splashprepare. + */ +#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP) +int splash_display(void) { + ulong addr; + char *s; int x = 0, y = 0, ret; + s = env_get("splashimage"); + if (!s) + return -EINVAL; + + addr = simple_strtoul(s, NULL, 16); ret = splash_screen_prepare(); if (ret) return ret; diff --git a/common/stdio.c b/common/stdio.c index ee22c1fd58..54ecc9b53d 100644 --- a/common/stdio.c +++ b/common/stdio.c @@ -16,6 +16,7 @@ #include <malloc.h> #include <stdio_dev.h> #include <serial.h> +#include <splash.h> #if defined(CONFIG_SYS_I2C) #include <i2c.h> @@ -366,6 +367,9 @@ int stdio_add_devices(void) if (ret) printf("%s: Video device failed (ret=%d)\n", __func__, ret); #endif /* !CONFIG_SYS_CONSOLE_IS_IN_ENV */ +#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP) + splash_display(); +#endif /* CONFIG_SPLASH_SCREEN && CONFIG_CMD_BMP */ #else # if defined(CONFIG_LCD) drv_lcd_init (); |