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

login
register
mail settings
Submitter Robert Winkler
Date June 17, 2013, 6:31 p.m.
Message ID <1371493891-25234-2-git-send-email-robert.winkler@boundarydevices.com>
Download mbox | patch
Permalink /patch/252037/
State Accepted
Delegated to: Anatolij Gustschin
Headers show

Comments

Robert Winkler - June 17, 2013, 6:31 p.m.
Create splash.c/h to put the function and any future common splash
screen code in.

Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
---
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
Igor Grinberg - June 18, 2013, 6:23 a.m.
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@boundarydevices.com>

Acked-by: Igor Grinberg <grinberg@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@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@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
>

Patch

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@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@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