splash: fix splash banner output

Old splash code in cfb_console driver displayed U-Boot version
string by default. Restore this behaviour for DM_VIDEO enabled
configurations.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reported-by: Fabio Estevam <festevam@gmail.com>
This commit is contained in:
Anatolij Gustschin 2019-09-20 17:23:41 +02:00
parent 8eba739716
commit d2a8271c88
1 changed files with 45 additions and 1 deletions

View File

@ -112,6 +112,42 @@ void splash_get_pos(int *x, int *y)
}
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
#if defined(CONFIG_DM_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
#ifdef CONFIG_VIDEO_LOGO
#include <bmp_logo.h>
#endif
#include <dm.h>
#include <video_console.h>
#include <video_font.h>
void splash_display_banner(void)
{
struct udevice *dev;
char buf[DISPLAY_OPTIONS_BANNER_LENGTH];
int col, row, ret;
ret = uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &dev);
if (ret)
return;
#ifdef CONFIG_VIDEO_LOGO
col = BMP_LOGO_WIDTH / VIDEO_FONT_WIDTH + 1;
row = BMP_LOGO_HEIGHT / VIDEO_FONT_HEIGHT + 1;
#else
col = 0;
row = 0;
#endif
display_options_get_banner(false, buf, sizeof(buf));
vidconsole_position_cursor(dev, col, 1);
vidconsole_put_string(dev, buf);
vidconsole_position_cursor(dev, 0, row);
}
#else
static inline void splash_display_banner(void) { }
#endif /* CONFIG_DM_VIDEO && !CONFIG_HIDE_LOGO_VERSION */
/*
* Common function to show a splash image if env("splashimage") is set.
* Is used for both dm_video and lcd video stacks. For additional
@ -135,6 +171,14 @@ int splash_display(void)
splash_get_pos(&x, &y);
return bmp_display(addr, x, y);
ret = bmp_display(addr, x, y);
/* Skip banner output on video console if the logo is not at 0,0 */
if (x || y)
goto end;
splash_display_banner();
end:
return ret;
}
#endif