X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fsplash.c;h=561d35b4e41f9072d84e430d028e92ec8aecd8c3;hb=909a1ab2f05a53b2e5a0c604a88c06adc8b4929c;hp=c7444977ed7fad566e5322520b99ea53f7e42e9e;hpb=59b15922119f79289df6714972acaeec0de1fe95;p=u-boot diff --git a/common/splash.c b/common/splash.c index c7444977ed..561d35b4e4 100644 --- a/common/splash.c +++ b/common/splash.c @@ -20,12 +20,49 @@ * */ +#include #include +#include -int __splash_screen_prepare(void) +__weak int splash_screen_prepare(void) { return 0; } -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 */ + +#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