[U-Boot] [PATCH 1/3 v2] video: lcd: Add CONFIG_SPLASH_SCREEN_PREPARE support to CONFIG_VIDEO

Igor Grinberg grinberg at compulab.co.il
Tue Jun 18 08:23:03 CEST 2013


Hi Robert,

On 06/17/13 21:31, Robert Winkler wrote:
> Create splash.c/h to put the function and any future common splash
> screen code in.
> 
> Signed-off-by: Robert Winkler <robert.winkler at boundarydevices.com>

Acked-by: Igor Grinberg <grinberg at compulab.co.il>

> ---
> v2 changes:
> remove superfluous comments
> remove debug printf that slipped in
> remove address from GPL comments
> 
>  common/Makefile             |  1 +
>  common/lcd.c                | 16 +++-------------
>  common/splash.c             | 36 ++++++++++++++++++++++++++++++++++++
>  drivers/video/cfb_console.c |  5 +++--
>  include/lcd.h               |  1 -
>  include/splash.h            | 29 +++++++++++++++++++++++++++++
>  6 files changed, 72 insertions(+), 16 deletions(-)
>  create mode 100644 common/splash.c
>  create mode 100644 include/splash.h
> 
> diff --git a/common/Makefile b/common/Makefile
> index 1cfb132..b48f227 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -204,6 +204,7 @@ COBJS-y += flash.o
>  COBJS-$(CONFIG_CMD_KGDB) += kgdb.o kgdb_stubs.o
>  COBJS-$(CONFIG_I2C_EDID) += edid.o
>  COBJS-$(CONFIG_KALLSYMS) += kallsyms.o
> +COBJS-y += splash.o
>  COBJS-$(CONFIG_LCD) += lcd.o
>  COBJS-$(CONFIG_LYNXKDI) += lynxkdi.o
>  COBJS-$(CONFIG_MENU) += menu.o
> diff --git a/common/lcd.c b/common/lcd.c
> index edae835..72ffcfb 100644
> --- a/common/lcd.c
> +++ b/common/lcd.c
> @@ -43,6 +43,8 @@
>  #include <lcd.h>
>  #include <watchdog.h>
>  
> +#include <splash.h>
> +
>  #if defined(CONFIG_CPU_PXA25X) || defined(CONFIG_CPU_PXA27X) || \
>  	defined(CONFIG_CPU_MONAHANS)
>  #define CONFIG_CPU_PXA
> @@ -1068,18 +1070,6 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
>  }
>  #endif
>  
> -#ifdef CONFIG_SPLASH_SCREEN_PREPARE
> -static inline int splash_screen_prepare(void)
> -{
> -	return board_splash_screen_prepare();
> -}
> -#else
> -static inline int splash_screen_prepare(void)
> -{
> -	return 0;
> -}
> -#endif
> -
>  static void *lcd_logo(void)
>  {
>  #ifdef CONFIG_SPLASH_SCREEN
> @@ -1092,7 +1082,7 @@ static void *lcd_logo(void)
>  		do_splash = 0;
>  
>  		if (splash_screen_prepare())
> -			return (void *)gd->fb_base;
> +			return (void *)lcd_base;
>  
>  		addr = simple_strtoul (s, NULL, 16);
>  #ifdef CONFIG_SPLASH_SCREEN_ALIGN
> diff --git a/common/splash.c b/common/splash.c
> new file mode 100644
> index 0000000..98de2be
> --- /dev/null
> +++ b/common/splash.c
> @@ -0,0 +1,36 @@
> +/*
> + * Copyright (C) 2013, Boundary Devices <info at boundarydevices.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., http://www.fsf.org/about/contact/
> + *
> + */
> +
> +#include <splash.h>
> +#include <config.h>
> +
> +#ifdef CONFIG_SPLASH_SCREEN_PREPARE
> +int splash_screen_prepare(void)
> +{
> +	return board_splash_screen_prepare();
> +}
> +#else
> +int splash_screen_prepare(void)
> +{
> +	return 0;
> +}
> +#endif
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> index 0793f07..4e299c6 100644
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -181,6 +181,8 @@
>   */
>  #include <video_fb.h>
>  
> +#include <splash.h>
> +
>  /*
>   * some Macros
>   */
> @@ -1995,10 +1997,9 @@ static void *video_logo(void)
>  #ifdef CONFIG_SPLASH_SCREEN
>  	s = getenv("splashimage");
>  	if (s != NULL) {
> -
> +		splash_screen_prepare();
>  		addr = simple_strtoul(s, NULL, 16);
>  
> -
>  		if (video_display_bitmap(addr,
>  					video_logo_xpos,
>  					video_logo_ypos) == 0) {
> diff --git a/include/lcd.h b/include/lcd.h
> index c6e7fc5..e58ffd0 100644
> --- a/include/lcd.h
> +++ b/include/lcd.h
> @@ -37,7 +37,6 @@ extern struct vidinfo panel_info;
>  
>  void lcd_ctrl_init(void *lcdbase);
>  void lcd_enable(void);
> -int board_splash_screen_prepare(void);
>  
>  /* setcolreg used in 8bpp/16bpp; initcolregs used in monochrome */
>  void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue);
> diff --git a/include/splash.h b/include/splash.h
> new file mode 100644
> index 0000000..63b45e0
> --- /dev/null
> +++ b/include/splash.h
> @@ -0,0 +1,29 @@
> +/*
> + * Copyright (C) 2013, Boundary Devices <info at boundarydevices.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., http://www.fsf.org/about/contact/
> + */
> +
> +#ifndef _SPLASH_H_
> +#define _SPLASH_H_
> +
> +
> +int splash_screen_prepare(void);
> +
> +
> +#endif
> 

-- 
Regards,
Igor.


More information about the U-Boot mailing list