
Hi,
On Thu, 24 May 2012 14:42:41 +0300 Igor Grinberg grinberg@compulab.co.il wrote:
From: Nikita Kiryanov nikita@compulab.co.il
Simplify lcd_logo by extracting bmp unzip into its own function.
Signed-off-by: Nikita Kiryanov nikita@compulab.co.il Signed-off-by: Igor Grinberg grinberg@compulab.co.il
common/lcd.c | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/common/lcd.c b/common/lcd.c index 448e0f0..855d3df 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -810,6 +810,25 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y) } #endif
+#ifdef CONFIG_VIDEO_BMP_GZIP +static inline ulong __gunzip_bmp(ulong addr) +{
- bmp_image_t *bmp = (bmp_image_t *)addr;
- unsigned long len;
- if (!((bmp->header.signature[0] == 'B') &&
(bmp->header.signature[1] == 'M')))
addr = (ulong)gunzip_bmp(addr, &len);
- return addr;
+} +#else +static inline ulong __gunzip_bmp(ulong addr) +{
- return addr;
+} +#endif
static void *lcd_logo(void) { #ifdef CONFIG_SPLASH_SCREEN @@ -840,16 +859,7 @@ static void *lcd_logo(void) } #endif /* CONFIG_SPLASH_SCREEN_ALIGN */
-#ifdef CONFIG_VIDEO_BMP_GZIP
bmp_image_t *bmp = (bmp_image_t *)addr;
unsigned long len;
if (!((bmp->header.signature[0] == 'B') &&
(bmp->header.signature[1] == 'M'))) {
addr = (ulong)gunzip_bmp(addr, &len);
}
-#endif
if (lcd_display_bitmap(addr, x, y) == 0) return (void *)lcd_base;addr = __gunzip_bmp(addr);
We can simplify it even more by using existing code here:
if (bmp_display(addr, x, y) == 0) return (void *)lcd_base;
bmp_display() will check and gunzip if needed.
Thanks,
Anatolij