aboutsummaryrefslogtreecommitdiff
path: root/common/splash.c
diff options
context:
space:
mode:
authorNikita Kiryanov <nikita@compulab.co.il>2015-02-03 13:32:32 +0200
committerAnatolij Gustschin <agust@denx.de>2015-02-10 13:31:58 +0100
commit7bf71d1f55d31a81ade8dd0fc72f06e4672689d0 (patch)
tree24b4f3eb0b35b5002131a307d33075ff602e8473 /common/splash.c
parent033167c4c5a9a31768f690353ce26be021ad9c36 (diff)
downloadu-boot-7bf71d1f55d31a81ade8dd0fc72f06e4672689d0.zip
u-boot-7bf71d1f55d31a81ade8dd0fc72f06e4672689d0.tar.gz
u-boot-7bf71d1f55d31a81ade8dd0fc72f06e4672689d0.tar.bz2
lcd: split splash code into its own function
lcd_logo() currently performs tasks well beyond just displaying the logo. It has code which displays splash image, it has logic which determines when the different display features are displayed, and it is coupled with the lcd console because it holds the responsibility of returning the lcd console base address. Make lcd_logo() just about the logo by: * Moving splash image display code into a dedicated function * Moving the logic regarding when various features are displayed to lcd_clear() (which is arguably not the correct name for housing such code either, but it is currently the most fitting location code wise) * Move the responsibility of setting the console base address to lcd_clear() too. Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Bo Shen <voice.shen@atmel.com> Tested-by: Josh Wu <josh.wu@atmel.com> Cc: Bo Shen <voice.shen@atmel.com> Cc: Simon Glass <sjg@chromium.org> Cc: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'common/splash.c')
-rw-r--r--common/splash.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/common/splash.c b/common/splash.c
index 144fb10..561d35b 100644
--- a/common/splash.c
+++ b/common/splash.c
@@ -22,6 +22,7 @@
#include <common.h>
#include <splash.h>
+#include <lcd.h>
__weak int splash_screen_prepare(void)
{
@@ -50,3 +51,18 @@ void splash_get_pos(int *x, int *y)
}
}
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
+
+#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_LCD)
+int lcd_splash(ulong addr)
+{
+ int x = 0, y = 0, ret;
+
+ ret = splash_screen_prepare();
+ if (ret)
+ return ret;
+
+ splash_get_pos(&x, &y);
+
+ return bmp_display(addr, x, y);
+}
+#endif