video: lcd: splash screen prepare changes
v2 cover video: lcd: splash screen prepare changes
The first 2 patches are the result of discussion in these threads:
http://lists.denx.de/pipermail/u-boot/2013-May/155463.html
http://lists.denx.de/pipermail/u-boot/2013-June/155630.html
http://lists.denx.de/pipermail/u-boot/2013-June/155632.html
The upshot is, move splash_screen_prepare to a common location so it can be used in cfb_console.c and (possibly) make it weak.
The first patch can be accepted without the last two. The third patch is a fix for cm_t35 that's only necessary if we make it weak.
Robert Winkler (3):
video: lcd: Add CONFIG_SPLASH_SCREEN_PREPARE support to CONFIG_VIDEO
video: lcd: Make splash_screen_prepare weak, remove config macro
omap: cm_t35: Fix cm_t35 for weak splash_screen_prepare
README | 8 -------- board/compulab/cm_t35/cm_t35.c | 2 +- common/Makefile | 1 + common/lcd.c | 16 +++------------- common/splash.c | 31 +++++++++++++++++++++++++++++++ doc/README.splashprepare | 8 ++++++++ drivers/video/cfb_console.c | 5 +++-- include/configs/cm_t35.h | 1 - include/lcd.h | 1 - include/splash.h | 29 +++++++++++++++++++++++++++++ 10 files changed, 76 insertions(+), 26 deletions(-) create mode 100644 common/splash.c create mode 100644 doc/README.splashprepare create mode 100644 include/splash.h
Signature · 1 line
1.8.3
PATCH v2 1/3 video: lcd: Add CONFIG_SPLASH_SCREEN_PREPARE support to CONFIG_VIDEO
Create splash.c/h to put the function and any future common splash screen code in.
---
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
common/Makefile +1 -0
@@ -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
common/lcd.c +3 -13
@@ -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
common/splash.c new file +36 -0
@@ -0,0 +1,36 @@ +/* +* Copyright (C) 2013, Boundary Devices <[email protected]> +* +* 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
drivers/video/cfb_console.c +3 -2
@@ -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 ) {
include/lcd.h +0 -1
@@ -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);
include/splash.h new file +29 -0
@@ -0,0 +1,29 @@ +/* +* Copyright (C) 2013, Boundary Devices <[email protected]> +* +* 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
Signature · 1 line
1.8.3
PATCH v2 1/3 video: lcd: Add CONFIG_SPLASH_SCREEN_PREPARE support to CONFIG_VIDEO
Hi Robert,
Quoted 4 lines · Robert Winkler
Create splash.c/h to put the function and any future common splash screen code in.
Signed-off-by Robert Winkler <[email protected]>
Quoted 184 lines
---
v2 changes:
remove superfluous comments
remove debug printf that slipped in
remove address from GPL commentscommon/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.hcommon/Makefile +1
-0@@ -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.ocommon/lcd.c +3
-13@@ -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 common/splash.c new file +36
-0@@ -0,0 +1,36 @@ +/* +* Copyright (C) 2013, Boundary Devices <[email protected]> +* +* 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 drivers/video/cfb_console.c +3
-2@@ -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 ) {include/lcd.h +0
-1@@ -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);include/splash.h new file +29
-0@@ -0,0 +1,29 @@ +/* +* Copyright (C) 2013, Boundary Devices <[email protected]> +* +* 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
Signature · 2 lines
Regards, Igor.
PATCH v2 2/3 video: lcd: Make splash_screen_prepare weak, remove config macro
In reply to Robert WinklerRemove CONFIG_SPLASH_SCREEN_PREPARE from README Add doc/README.splashprepare to document functionality
--- README | 8 -------- common/splash.c | 13 ++++--------- doc/README.splashprepare | 8 ++++++++ 3 files changed, 12 insertions(+), 17 deletions(-) create mode 100644 doc/README.splashprepare
README +0 -8
@@ -1605,14 +1605,6 @@ CBFS (Coreboot Filesystem) support => vertically centered image at x = dspWidth - bmpWidth - 9 - CONFIG_SPLASH_SCREEN_PREPARE - - If this option is set then the board_splash_screen_prepare() - function, which must be defined in your code, is called as part - of the splash screen display sequence. It gives the board an - opportunity to prepare the splash image data before it is - processed and sent to the frame buffer by U-Boot. - - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP If this option is set, additionally to standard BMP
common/splash.c +4 -9
@@ -21,16 +21,11 @@*/ #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 ) +int __splash_screen_prepare (void ) {return 0 ; } -#endif + +int splash_screen_prepare (void ) + __attribute__ ((weak,alias ("__splash_screen_prepare" )));
doc/README.splashprepare new file +8 -0
@@ -0,0 +1,8 @@ +--------------------------------------------------------------------- +Splash Screen +--------------------------------------------------------------------- +The splash_screen_prepare() function is a weak function defined in +common/splash.c. It is called as part of the splash screen display +sequence. It gives the board an opportunity to prepare the splash +image data before it is processed and sent to the frame buffer by +U-Boot. Define your own version to use this feature.
Signature · 1 line
1.8.3
PATCH 2/3 video: lcd: Make splash_screen_prepare weak, remove config macro
Quoted 4 lines · Robert Winkler
Remove
CONFIG_SPLASH_SCREEN_PREPAREfrom README Add doc/README.splashprepare to document functionalitySigned-off-by Robert Winkler <[email protected]>
Quoted 66 lines
--- README | 8 -------- common/splash.c | 13 ++++--------- doc/README.splashprepare | 8 ++++++++ 3 files changed, 12 insertions(+), 17 deletions(-) create mode 100644 doc/README.splashprepareREADME +0
-8@@ -1605,14 +1605,6 @@ CBFS (Coreboot Filesystem) support => vertically centered image at x = dspWidth - bmpWidth - 9 - CONFIG_SPLASH_SCREEN_PREPARE - - If this option is set then the board_splash_screen_prepare() - function, which must be defined in your code, is called as part - of the splash screen display sequence. It gives the board an - opportunity to prepare the splash image data before it is - processed and sent to the frame buffer by U-Boot. - - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP If this option is set, additionally to standard BMPcommon/splash.c +4
-9@@ -21,16 +21,11 @@*/ #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 ) +int __splash_screen_prepare (void ) {return 0 ; } -#endif + +int splash_screen_prepare (void ) + __attribute__ ((weak,alias ("__splash_screen_prepare" )));doc/README.splashprepare new file +8
-0@@ -0,0 +1,8 @@ +--------------------------------------------------------------------- +Splash Screen +--------------------------------------------------------------------- +The splash_screen_prepare() function is a weak function defined in +common/splash.c. It is called as part of the splash screen display +sequence. It gives the board an opportunity to prepare the splash +image data before it is processed and sent to the frame buffer by +U-Boot. Define your own version to use this feature.
Signature · 2 lines
Regards, Igor.
PATCH v2 3/3 omap: cm_t35: Fix cm_t35 for weak splash_screen_prepare
In reply to Robert Winkler--- board/compulab/cm_t35/cm_t35.c | 2 +- include/configs/cm_t35.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)
board/compulab/cm_t35/cm_t35.c +1 -1
@@ -120,7 +120,7 @@ static inline int splash_load_from_nand(void) }#endif /* CONFIG_CMD_NAND */ -int board_splash_screen_prepare (void ) +int splash_screen_prepare (void ) {char *env_splashimage_value;u32 bmp_load_addr;
include/configs/cm_t35.h +0 -1
@@ -339,6 +339,5 @@#define CONFIG_SPLASH_SCREEN #define CONFIG_CMD_BMP #define CONFIG_BMP_16BPP -#define CONFIG_SPLASH_SCREEN_PREPARE #endif /* __CONFIG_H */
Signature · 1 line
1.8.3
PATCH 3/3 omap: cm_t35: Fix cm_t35 for weak splash_screen_prepare
Quoted 1 line · Robert Winkler
Signed-off-by Robert Winkler <[email protected]>
Usually, we add something to the commit message, otherwise
Quoted 30 lines
--- board/compulab/cm_t35/cm_t35.c | 2 +- include/configs/cm_t35.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)board/compulab/cm_t35/cm_t35.c +1
-1@@ -120,7 +120,7 @@ static inline int splash_load_from_nand(void) }#endif /* CONFIG_CMD_NAND */ -int board_splash_screen_prepare (void ) +int splash_screen_prepare (void ) {char *env_splashimage_value;u32 bmp_load_addr;include/configs/cm_t35.h +0
-1@@ -339,6 +339,5 @@#define CONFIG_SPLASH_SCREEN #define CONFIG_CMD_BMP #define CONFIG_BMP_16BPP -#define CONFIG_SPLASH_SCREEN_PREPARE #endif /* __CONFIG_H */
Signature · 2 lines
Regards, Igor.
PATCH v2 3/3 omap: cm_t35: Fix cm_t35 for weak splash_screen_prepare
I figured this one was so simple it didn't warrant anything more than what's already in the subject line.
Quoted 41 lines · Igor Grinberg
Quoted 1 line · Robert Winkler
Signed-off-by Robert Winkler <[email protected]>Usually, we add something to the commit message, otherwise
Acked-by Igor Grinberg <[email protected]>Quoted 24 lines
--- board/compulab/cm_t35/cm_t35.c | 2 +- include/configs/cm_t35.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)board/compulab/cm_t35/cm_t35.c +1
-1@@ -120,7 +120,7 @@ static inline int splash_load_from_nand(void) }#endif /* CONFIG_CMD_NAND */ -int board_splash_screen_prepare (void ) +int splash_screen_prepare (void ) {char *env_splashimage_value;u32 bmp_load_addr;include/configs/cm_t35.h +0
-0include/configs/cm_t35.h line 343
Quoted 6 lines
include/configs/cm_t35.h +0
-1@@ -339,6 +339,5 @@#define CONFIG_SPLASH_SCREEN #define CONFIG_CMD_BMP #define CONFIG_BMP_16BPP -#define CONFIG_SPLASH_SCREEN_PREPARE #endif /* __CONFIG_H */ --
Regards,
Igor.
PATCH 3/3 omap: cm_t35: Fix cm_t35 for weak splash_screen_prepare
Quoted 2 lines · Robert Winkler
I figured this one was so simple it didn't warrant anything more than what's already in the subject line.
Yes, that's understood.
There are plenty of simple patches, but still it is a good practice to have even a minimal commit message.
Quoted 44 lines · Igor Grinberg
Quoted 41 lines · Robert Winkler
Quoted 1 line
Signed-off-by Robert Winkler <[email protected]>Usually, we add something to the commit message, otherwise
Acked-by Igor Grinberg <[email protected]>Quoted 24 lines
--- board/compulab/cm_t35/cm_t35.c | 2 +- include/configs/cm_t35.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)board/compulab/cm_t35/cm_t35.c +1
-1@@ -120,7 +120,7 @@ static inline int splash_load_from_nand(void) }#endif /* CONFIG_CMD_NAND */ -int board_splash_screen_prepare (void ) +int splash_screen_prepare (void ) {char *env_splashimage_value;u32 bmp_load_addr;include/configs/cm_t35.h +0
-0include/configs/cm_t35.h line 343
Quoted 6 lines
include/configs/cm_t35.h +0
-1@@ -339,6 +339,5 @@#define CONFIG_SPLASH_SCREEN #define CONFIG_CMD_BMP #define CONFIG_BMP_16BPP -#define CONFIG_SPLASH_SCREEN_PREPARE #endif /* __CONFIG_H */ --
Regards,
Igor.
Signature · 2 lines
Regards, Igor.
v2 cover video: lcd: splash screen prepare changes
In reply to Robert WinklerHello all,
I haven't heard from anyone but Igor. Does that mean it looks good?
Robert
Quoted 35 lines · Robert Winkler
The first 2 patches are the result of discussion in these threads:
http://lists.denx.de/pipermail/u-boot/2013-May/155463.html
http://lists.denx.de/pipermail/u-boot/2013-June/155630.html
http://lists.denx.de/pipermail/u-boot/2013-June/155632.htmlThe upshot is, move
splash_screen_prepareto a common location so it can be used incfb_console.cand (possibly) make it weak.The first patch can be accepted without the last two. The third patch is a fix for
cm_t35that's only necessary if we make it weak.Robert Winkler (3):
video: lcd: AddCONFIG_SPLASH_SCREEN_PREPAREsupport toCONFIG_VIDEO
video: lcd: Makesplash_screen_prepareweak, remove config macro
omap:cm_t35: Fixcm_t35for weaksplash_screen_prepareREADME | 8 -------- board/compulab/cm_t35/cm_t35.c | 2 +- common/Makefile | 1 + common/lcd.c | 16 +++------------- common/splash.c | 31 +++++++++++++++++++++++++++++++ doc/README.splashprepare | 8 ++++++++ drivers/video/cfb_console.c | 5 +++-- include/configs/cm_t35.h | 1 - include/lcd.h | 1 - include/splash.h | 29 +++++++++++++++++++++++++++++ 10 files changed, 76 insertions(+), 26 deletions(-) create mode 100644 common/splash.c create mode 100644 doc/README.splashprepare create mode 100644 include/splash.h--
1.8.3
v2 cover video: lcd: splash screen prepare changes
Hello Robert,
Quoted 3 lines · On Wed, 26 Jun 2013 16:00:20 -0700 Robert Winkler…
Hello all,
I haven't heard from anyone but Igor. Does that mean it looks good?
Sorry for delay, I've applied this series now. Thanks!
Anatolij