diff options
Diffstat (limited to 'common')
| -rw-r--r-- | common/cmd_bmp.c | 3 | ||||
| -rw-r--r-- | common/lcd.c | 17 | ||||
| -rw-r--r-- | common/splash.c | 25 | 
3 files changed, 29 insertions, 16 deletions
| diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c index 946031dea..a7c5fbd26 100644 --- a/common/cmd_bmp.c +++ b/common/cmd_bmp.c @@ -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; diff --git a/common/lcd.c b/common/lcd.c index 95006aa12..50ea4d6ca 100644 --- a/common/lcd.c +++ b/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; diff --git a/common/splash.c b/common/splash.c index c7444977e..18885f1bf 100644 --- a/common/splash.c +++ b/common/splash.c @@ -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 */ |