[U-Boot] [PATCH 4/7] common lcd: simplify lcd_logo

Anatolij Gustschin agust at denx.de
Fri Jun 8 17:35:22 CEST 2012


Hi,

On Thu, 24 May 2012 14:42:41 +0300
Igor Grinberg <grinberg at compulab.co.il> wrote:

> From: Nikita Kiryanov <nikita at compulab.co.il>
> 
> Simplify lcd_logo by extracting bmp unzip into its own function.
> 
> Signed-off-by: Nikita Kiryanov <nikita at compulab.co.il>
> Signed-off-by: Igor Grinberg <grinberg at 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
> -
> +		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


More information about the U-Boot mailing list