diff options
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 (); |