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

Igor Grinberg grinberg at compulab.co.il
Mon Jun 17 07:34:21 CEST 2013


Hi Robert,

On 06/14/13 20:00, 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>

Thanks for the effort!
Several comments below...

> ---
>  common/Makefile             |  1 +
>  common/lcd.c                | 19 ++++++-------------
>  common/splash.c             | 37 +++++++++++++++++++++++++++++++++++++
>  drivers/video/cfb_console.c |  8 ++++++--
>  include/lcd.h               |  1 -
>  include/splash.h            | 30 ++++++++++++++++++++++++++++++
>  6 files changed, 80 insertions(+), 16 deletions(-)
>  create mode 100644 common/splash.c
>  create mode 100644 include/splash.h
> 
> diff --git a/common/Makefile b/common/Makefile
> index 0e0fff1..1d70584 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -203,6 +203,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

I think this should depend on CONFIG_SPLASH_SCREEN.

>  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 3a60484..4a85ebb 100644
> --- a/common/lcd.c
> +++ b/common/lcd.c
> @@ -43,6 +43,11 @@
>  #include <lcd.h>
>  #include <watchdog.h>
>  
> +/*
> + * Include splash.h for splash_screen_prepare() etc.
> + */

I think this comment is meaningless, the below include is self explanatory.

> +#include <splash.h>
> +
>  #if defined(CONFIG_CPU_PXA25X) || defined(CONFIG_CPU_PXA27X) || \
>  	defined(CONFIG_CPU_MONAHANS)
>  #define CONFIG_CPU_PXA
> @@ -1072,18 +1077,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
> @@ -1096,7 +1089,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..fe13c69
> --- /dev/null
> +++ b/common/splash.c
> @@ -0,0 +1,37 @@
> +/*
> + * 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., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA

I would drop the postal address, as it changed in the past and
probably will change in the future and then we will have a bunch of
files with wrong address...

> + */
> +
> +#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)
> +{
> +	printf("SPLASH_SCREEN_PREPARE not defined\n");
> +	return 0;
> +}
> +#endif
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> index b769222..4543730 100644
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -178,6 +178,11 @@
>  #include <video_fb.h>
>  
>  /*
> + * Include splash.h for splash_screen_prepare() etc.
> + */

Same here, the below include does not need any comment.

> +#include <splash.h>
> +
> +/*
>   * some Macros
>   */
>  #define VIDEO_VISIBLE_COLS	(pGD->winSizeX)
> @@ -1991,10 +1996,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 30225ed..79bf13e 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..478f864
> --- /dev/null
> +++ b/include/splash.h
> @@ -0,0 +1,30 @@
> +/*
> + * 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., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA

If you decide to drop the postal address, then please do it also here.

> + */
> +
> +#ifndef _SPLASH_H_
> +#define _SPLASH_H_
> +
> +
> +int splash_screen_prepare(void);
> +
> +
> +#endif
> 

-- 
Regards,
Igor.


More information about the U-Boot mailing list