diff options
Diffstat (limited to 'board/st/u8500/mcde_display.c')
-rw-r--r-- | board/st/u8500/mcde_display.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/board/st/u8500/mcde_display.c b/board/st/u8500/mcde_display.c index 70d1cb9b0..e0f924550 100644 --- a/board/st/u8500/mcde_display.c +++ b/board/st/u8500/mcde_display.c @@ -20,13 +20,8 @@ #include <linux/err.h> #include <asm/arch/ab8500.h> #include "common.h" - - -#ifdef CONFIG_SYS_VIDEO_USE_GIMP_HEADER -#include <asm/arch/mcde_video_logo_gimp.h> -#else -#include <asm/arch/mcde_video_logo.h> -#endif +#include <part.h> +#include <mmc.h> #define DEBUG 0 #define dbg_printk(format, arg...) \ @@ -327,6 +322,9 @@ int mcde_display_image(void) u32 xpos = 0; u32 ypos = 0; int ret; + struct mmc *emmc_dev; + u32 address = CONFIG_SYS_VIDEO_FB_ADRS; + #ifdef CONFIG_SYS_VIDEO_USE_GIMP_HEADER u32 i = 0; u8 pixels[3]; @@ -341,6 +339,18 @@ int mcde_display_image(void) return -ret; } + emmc_dev = find_mmc_device(CONFIG_EMMC_DEV_NUM); + if (emmc_dev == NULL) { + printf("mcde_display_image: emmc not found.\n"); + return 1; + } + + if (toc_load_toc_entry(&emmc_dev->block_dev, MCDE_TOC_SPLASH_NAME, 0, + 0, address)) { + printf("mcde_display_image: no splash image found.\n"); + return 1; + } + #ifdef CONFIG_SYS_VIDEO_USE_GIMP_HEADER /* Add the image data */ sp = (u16 *)CONFIG_SYS_VIDEO_FB_ADRS; @@ -354,7 +364,7 @@ int mcde_display_image(void) } mcde_ovly_set_source_buf(ovly, CONFIG_SYS_VIDEO_FB_ADRS); #else - mcde_ovly_set_source_buf(ovly, (u32)&mcde_video_logo[0]); + mcde_ovly_set_source_buf(ovly, (u32)address); #endif mcde_ovly_set_source_info(ovly, (MCDE_VIDEO_LOGO_WIDTH*2), main_display.default_pixel_format); |