From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anatolij Gustschin Date: Fri, 8 Jun 2012 17:35:22 +0200 Subject: [U-Boot] [PATCH 4/7] common lcd: simplify lcd_logo In-Reply-To: <1337859764-16086-5-git-send-email-grinberg@compulab.co.il> References: <1337859764-16086-1-git-send-email-grinberg@compulab.co.il> <1337859764-16086-5-git-send-email-grinberg@compulab.co.il> Message-ID: <20120608173522.608394e8@wker> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On Thu, 24 May 2012 14:42:41 +0300 Igor Grinberg wrote: > From: Nikita Kiryanov > > Simplify lcd_logo by extracting bmp unzip into its own function. > > Signed-off-by: Nikita Kiryanov > Signed-off-by: Igor Grinberg > --- > 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 > - > + addr = __gunzip_bmp(addr); > if (lcd_display_bitmap(addr, x, y) == 0) > return (void *)lcd_base; 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