diff options
| -rw-r--r-- | common/cmd_bmp.c | 3 | ||||
| -rw-r--r-- | common/lcd.c | 17 | ||||
| -rw-r--r-- | common/splash.c | 25 | ||||
| -rw-r--r-- | drivers/video/cfb_console.c | 24 | ||||
| -rw-r--r-- | include/splash.h | 7 | 
5 files changed, 38 insertions, 38 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 */ diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index 785bbcfc3..e384b7140 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -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"); diff --git a/include/splash.h b/include/splash.h index a8dd151c7..89ee7b22e 100644 --- a/include/splash.h +++ b/include/splash.h @@ -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 |