mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
video: consolidate splash screen alignment code
Code for checking "splashpos" environment variable is duplicated in drivers, move it to the common function. Call this function also in the bmp display command to consider "splashpos" settings. Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Otavio Salvador <otavio@ossystems.com.br>
This commit is contained in:
parent
327598945b
commit
ff8fb56b6f
5 changed files with 38 additions and 38 deletions
|
@ -31,6 +31,7 @@
|
|||
#include <command.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <malloc.h>
|
||||
#include <splash.h>
|
||||
#include <video.h>
|
||||
|
||||
static int bmp_info (ulong addr);
|
||||
|
@ -125,6 +126,8 @@ static int do_bmp_display(cmd_tbl_t * cmdtp, int flag, int argc, char * const ar
|
|||
ulong addr;
|
||||
int x = 0, y = 0;
|
||||
|
||||
splash_get_pos(&x, &y);
|
||||
|
||||
switch (argc) {
|
||||
case 1: /* use load_addr as default address */
|
||||
addr = load_addr;
|
||||
|
|
17
common/lcd.c
17
common/lcd.c
|
@ -1089,23 +1089,8 @@ static void *lcd_logo(void)
|
|||
return (void *)lcd_base;
|
||||
|
||||
addr = simple_strtoul (s, NULL, 16);
|
||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||
s = getenv("splashpos");
|
||||
if (s != NULL) {
|
||||
if (s[0] == 'm')
|
||||
x = BMP_ALIGN_CENTER;
|
||||
else
|
||||
x = simple_strtol(s, NULL, 0);
|
||||
|
||||
s = strchr(s + 1, ',');
|
||||
if (s != NULL) {
|
||||
if (s[1] == 'm')
|
||||
y = BMP_ALIGN_CENTER;
|
||||
else
|
||||
y = simple_strtol (s + 1, NULL, 0);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
|
||||
splash_get_pos(&x, &y);
|
||||
|
||||
if (bmp_display(addr, x, y) == 0)
|
||||
return (void *)lcd_base;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <splash.h>
|
||||
|
||||
int __splash_screen_prepare(void)
|
||||
|
@ -29,3 +30,27 @@ int __splash_screen_prepare(void)
|
|||
|
||||
int splash_screen_prepare(void)
|
||||
__attribute__ ((weak, alias("__splash_screen_prepare")));
|
||||
|
||||
|
||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||
void splash_get_pos(int *x, int *y)
|
||||
{
|
||||
char *s = getenv("splashpos");
|
||||
|
||||
if (!s)
|
||||
return;
|
||||
|
||||
if (s[0] == 'm')
|
||||
*x = BMP_ALIGN_CENTER;
|
||||
else
|
||||
*x = simple_strtol(s, NULL, 0);
|
||||
|
||||
s = strchr(s + 1, ',');
|
||||
if (s != NULL) {
|
||||
if (s[1] == 'm')
|
||||
*y = BMP_ALIGN_CENTER;
|
||||
else
|
||||
*y = simple_strtol(s + 1, NULL, 0);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
|
||||
|
|
|
@ -222,11 +222,7 @@
|
|||
#if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)
|
||||
#include <watchdog.h>
|
||||
#include <bmp_layout.h>
|
||||
|
||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||
#define BMP_ALIGN_CENTER 0x7FFF
|
||||
#endif
|
||||
|
||||
#include <splash.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -1976,23 +1972,7 @@ static void *video_logo(void)
|
|||
__maybe_unused ulong addr;
|
||||
__maybe_unused char *s;
|
||||
|
||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||
s = getenv("splashpos");
|
||||
if (s != NULL) {
|
||||
if (s[0] == 'm')
|
||||
video_logo_xpos = BMP_ALIGN_CENTER;
|
||||
else
|
||||
video_logo_xpos = simple_strtol(s, NULL, 0);
|
||||
|
||||
s = strchr(s + 1, ',');
|
||||
if (s != NULL) {
|
||||
if (s[1] == 'm')
|
||||
video_logo_ypos = BMP_ALIGN_CENTER;
|
||||
else
|
||||
video_logo_ypos = simple_strtol(s + 1, NULL, 0);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
|
||||
splash_get_pos(&video_logo_xpos, &video_logo_ypos);
|
||||
|
||||
#ifdef CONFIG_SPLASH_SCREEN
|
||||
s = getenv("splashimage");
|
||||
|
|
|
@ -25,5 +25,12 @@
|
|||
|
||||
int splash_screen_prepare(void);
|
||||
|
||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||
void splash_get_pos(int *x, int *y);
|
||||
#else
|
||||
static inline void splash_get_pos(int *x, int *y) { }
|
||||
#endif
|
||||
|
||||
#define BMP_ALIGN_CENTER 0x7FFF
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue