summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
-rw-r--r--board/st/u8500/mcde_display.c26
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);