diff options
| author | Tom Rini <trini@ti.com> | 2013-03-18 12:31:00 -0400 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-03-18 14:37:18 -0400 | 
| commit | 0ce033d2582129243aca10d3072a221386bbba44 (patch) | |
| tree | 6e50a3f4eed22007549dc740d0fa647a6c8cec5b /common/lcd.c | |
| parent | b5bec88434adb52413f1bc33fa63d7642cb8fd35 (diff) | |
| parent | b27673ccbd3d5435319b5c09c3e7061f559f925d (diff) | |
| download | olio-uboot-2014.01-0ce033d2582129243aca10d3072a221386bbba44.tar.xz olio-uboot-2014.01-0ce033d2582129243aca10d3072a221386bbba44.zip | |
Merge branch 'master' of git://git.denx.de/u-boot-arm
Albert's rework of the linker scripts conflicted with Simon's making
everyone use __bss_end.  We also had a minor conflict over
README.scrapyard being added to in mainline and enhanced in
u-boot-arm/master with proper formatting.
Conflicts:
	arch/arm/cpu/ixp/u-boot.lds
	arch/arm/cpu/u-boot.lds
	arch/arm/lib/Makefile
	board/actux1/u-boot.lds
	board/actux2/u-boot.lds
	board/actux3/u-boot.lds
	board/dvlhost/u-boot.lds
	board/freescale/mx31ads/u-boot.lds
	doc/README.scrapyard
	include/configs/tegra-common.h
Build tested for all of ARM and run-time tested on am335x_evm.
Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'common/lcd.c')
| -rw-r--r-- | common/lcd.c | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/common/lcd.c b/common/lcd.c index 66d4f94f9..590bbb930 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -33,6 +33,8 @@  #include <common.h>  #include <command.h>  #include <stdarg.h> +#include <search.h> +#include <env_callback.h>  #include <linux/types.h>  #include <stdio_dev.h>  #if defined(CONFIG_POST) @@ -1034,6 +1036,18 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  }  #endif +#ifdef CONFIG_SPLASH_SCREEN_PREPARE +static inline int splash_screen_prepare(void) +{ +	return board_splash_screen_prepare(); +} +#else +static inline int splash_screen_prepare(void) +{ +	return 0; +} +#endif +  static void *lcd_logo(void)  {  #ifdef CONFIG_SPLASH_SCREEN @@ -1045,6 +1059,9 @@ static void *lcd_logo(void)  		int x = 0, y = 0;  		do_splash = 0; +		if (splash_screen_prepare()) +			return (void *)gd->fb_base; +  		addr = simple_strtoul (s, NULL, 16);  #ifdef CONFIG_SPLASH_SCREEN_ALIGN  		s = getenv("splashpos"); @@ -1084,6 +1101,30 @@ static void *lcd_logo(void)  #endif /* CONFIG_LCD_LOGO && !CONFIG_LCD_INFO_BELOW_LOGO */  } +#ifdef CONFIG_SPLASHIMAGE_GUARD +static int on_splashimage(const char *name, const char *value, enum env_op op, +	int flags) +{ +	ulong addr; +	int aligned; + +	if (op == env_op_delete) +		return 0; + +	addr = simple_strtoul(value, NULL, 16); +	/* See README.displaying-bmps */ +	aligned = (addr % 4 == 2); +	if (!aligned) { +		printf("Invalid splashimage value. Value must be 16 bit aligned, but not 32 bit aligned\n"); +		return -1; +	} + +	return 0; +} + +U_BOOT_ENV_CALLBACK(splashimage, on_splashimage); +#endif +  void lcd_position_cursor(unsigned col, unsigned row)  {  	console_col = min(col, CONSOLE_COLS - 1); |