Skip to contentSkip to conversation

bmp: Respect "splashpos" if it is defined

PATCH New Otavio Salvador 2 participants 8 messages Jun 6, 2013 – Jul 8, 2013 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 bmp: Respect "splashpos" if it is defined

---
 common/cmd_bmp.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
common/cmd_bmp.c +23 -0
index 5a52edd..48e045e 100644
@@ -33,6 +33,10 @@
 #include <malloc.h>
 #include <video.h>
 
+#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+#define BMP_ALIGN_CENTER	0x7FFF
+#endif
+
 static int bmp_info (ulong addr);
 
 /*
@@ -112,6 +116,25 @@ static int do_bmp_display(cmd_tbl_t * cmdtp, int flag, int argc, char * const ar
 {
 	ulong addr;
 	int x = 0, y = 0;
+	__maybe_unused char *s;
+
+#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+	s = getenv("splashpos");
+	if (s != NULL) {
+		if (s[0] == 'm')
+			x = BMP_ALIGN_CENTER;
+		else
+			x = simple_strtol(s, NULL, 0);
+
+		s = strchr(s + 1, ',');
+		if (s != NULL) {
+			if (s[1] == 'm')
+				y = BMP_ALIGN_CENTER;
+			else
+				y = simple_strtol(s + 1, NULL, 0);
+		}
+	}
+#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
 
 	switch (argc) {
 	case 1:		/* use load_addr as default address */
Signature · 1 line
1.8.1
#1 lore raw

PATCH 1/1 bmp: Respect "splashpos" if it is defined

Dear Anatolij,

Quoted 2 lines · Otavio Salvador

I forgot to add you in Cc; sorry.

Signature · 3 lines
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750
#3 lore raw

PATCH 1/1 bmp: Respect "splashpos" if it is defined

In reply to Otavio Salvador

Hello Otavio,

Sorry for delay.

On Thu, 6 Jun 2013 14:57:23 -0300
Otavio Salvador <[email protected]> wrote:
...

Quoted 7 lines
common/cmd_bmp.c +7 -0
+#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+	s = getenv("splashpos");
+	if (s != NULL) {
+		if (s[0] == 'm')
+			x = BMP_ALIGN_CENTER;
+		else
+			x = simple_strtol(s, NULL, 0);

common/cmd_bmp.c static int do_bmp_display(cmd_tbl_t * cmdtp, int flag, int argc, char * const ar · line 137

Quoted 10 lines
common/cmd_bmp.c +10 -0
+
+		s = strchr(s + 1, ',');
+		if (s != NULL) {
+			if (s[1] == 'm')
+				y = BMP_ALIGN_CENTER;
+			else
+				y = simple_strtol(s + 1, NULL, 0);
+		}
+	}
+#endif /* CONFIG_SPLASH_SCREEN_ALIGN */

This code is already there in two other drivers, we should better add a common function for "splashpos" checking and use it here. I'll submit a patch shortly.

Thanks,

Anatolij

#4 lore raw

PATCH 1/1 bmp: Respect "splashpos" if it is defined

Quoted 20 lines · Anatolij Gustschin

Hello Otavio,

Sorry for delay.

On Thu, 6 Jun 2013 14:57:23 -0300
Otavio Salvador <[email protected]> wrote:
...

Quoted 13 lines
common/cmd_bmp.c +13 -0
+#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+     s = getenv("splashpos");
+     if (s != NULL) {
+             if (s[0] == 'm')
+                     x = BMP_ALIGN_CENTER;
+             else
+                     x = simple_strtol(s, NULL, 0);
+
+             s = strchr(s + 1, ',');
+             if (s != NULL) {
+                     if (s[1] == 'm')
+                             y = BMP_ALIGN_CENTER;
+                     else
Quoted 8 lines

common/cmd_bmp.c static int do_bmp_display(cmd_tbl_t * cmdtp, int flag, int argc, char * const ar · line 137

Quoted 4 lines
common/cmd_bmp.c +4 -0
+                             y = simple_strtol(s + 1, NULL, 0);
+             }
+     }
+#endif /* CONFIG_SPLASH_SCREEN_ALIGN */

This code is already there in two other drivers, we should better add a common function for "splashpos" checking and use it here. I'll submit a patch shortly.

Agreed; I just acked the patch ... it looks great, thanks!

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750

#5 lore raw

PATCH 1/1 video: consolidate splash screen alignment code

In reply to Otavio Salvador

Code for checking "splashpos" environment variable is duplicated in drivers, move it to the common function. Call this function also in the bmp display command to consider "splashpos" settings.

---
 common/cmd_bmp.c            |    3 +++
 common/lcd.c                |   19 ++-----------------
 common/splash.c             |   25 +++++++++++++++++++++++++
 drivers/video/cfb_console.c |   24 ++----------------------
 include/splash.h            |    7 +++++++
 5 files changed, 39 insertions(+), 39 deletions(-)
common/cmd_bmp.c +3 -0
index 946031d..a7c5fbd 100644
@@ -31,6 +31,7 @@
 #include <command.h>
 #include <asm/byteorder.h>
 #include <malloc.h>
+#include <splash.h>
 #include <video.h>
 
 static int bmp_info (ulong addr);
@@ -125,6 +126,8 @@ static int do_bmp_display(cmd_tbl_t * cmdtp, int flag, int argc, char * const ar
 	ulong addr;
 	int x = 0, y = 0;
 
+	splash_get_pos(&x, &y);
+
 	switch (argc) {
 	case 1:		/* use load_addr as default address */
 		addr = load_addr;
common/lcd.c +2 -17
index 95006aa..50ea4d6 100644
@@ -1089,23 +1089,8 @@ static void *lcd_logo(void)
 			return (void *)lcd_base;
 
 		addr = simple_strtoul (s, NULL, 16);
-#ifdef CONFIG_SPLASH_SCREEN_ALIGN
-		s = getenv("splashpos");
-		if (s != NULL) {
-			if (s[0] == 'm')
-				x = BMP_ALIGN_CENTER;
-			else
-				x = simple_strtol(s, NULL, 0);
-
-			s = strchr(s + 1, ',');
-			if (s != NULL) {
-				if (s[1] == 'm')
-					y = BMP_ALIGN_CENTER;
-				else
-					y = simple_strtol (s + 1, NULL, 0);
-			}
-		}
-#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
+
+		splash_get_pos(&x, &y);
 
 		if (bmp_display(addr, x, y) == 0)
 			return (void *)lcd_base;
common/splash.c +25 -0
index c744497..18885f1 100644
@@ -20,6 +20,7 @@
  *
  */
 
+#include <common.h>
 #include <splash.h>
 
 int __splash_screen_prepare(void)
@@ -29,3 +30,27 @@ int __splash_screen_prepare(void)
 
 int splash_screen_prepare(void)
 	__attribute__ ((weak, alias("__splash_screen_prepare")));
+
+
+#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+void splash_get_pos(int *x, int *y)
+{
+	char *s = getenv("splashpos");
+
+	if (!s)
+		return;
+
+	if (s[0] == 'm')
+		*x = BMP_ALIGN_CENTER;
+	else
+		*x = simple_strtol(s, NULL, 0);
+
+	s = strchr(s + 1, ',');
+	if (s != NULL) {
+		if (s[1] == 'm')
+			*y = BMP_ALIGN_CENTER;
+		else
+			*y = simple_strtol(s + 1, NULL, 0);
+	}
+}
+#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
drivers/video/cfb_console.c +2 -22
index 785bbcf..e384b71 100644
@@ -222,11 +222,7 @@
 #if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)
 #include <watchdog.h>
 #include <bmp_layout.h>
-
-#ifdef CONFIG_SPLASH_SCREEN_ALIGN
-#define BMP_ALIGN_CENTER	0x7FFF
-#endif
-
+#include <splash.h>
 #endif
 
 /*
@@ -1976,23 +1972,7 @@ static void *video_logo(void)
 	__maybe_unused ulong addr;
 	__maybe_unused char *s;
 
-#ifdef CONFIG_SPLASH_SCREEN_ALIGN
-	s = getenv("splashpos");
-	if (s != NULL) {
-		if (s[0] == 'm')
-			video_logo_xpos = BMP_ALIGN_CENTER;
-		else
-			video_logo_xpos = simple_strtol(s, NULL, 0);
-
-		s = strchr(s + 1, ',');
-		if (s != NULL) {
-			if (s[1] == 'm')
-				video_logo_ypos = BMP_ALIGN_CENTER;
-			else
-				video_logo_ypos = simple_strtol(s + 1, NULL, 0);
-		}
-	}
-#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
+	splash_get_pos(&video_logo_xpos, &video_logo_ypos);
 
 #ifdef CONFIG_SPLASH_SCREEN
 	s = getenv("splashimage");
include/splash.h +7 -0
index a8dd151..89ee7b2 100644
@@ -25,5 +25,12 @@
 
 int splash_screen_prepare(void);
 
+#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+void splash_get_pos(int *x, int *y);
+#else
+static inline void splash_get_pos(int *x, int *y) { }
+#endif
+
+#define BMP_ALIGN_CENTER	0x7FFF
 
 #endif
Signature · 1 line
1.7.9.5
#6 lore raw

PATCH 1/1 video: consolidate splash screen alignment code

Quoted 6 lines · Anatolij Gustschin

Code for checking "splashpos" environment variable is duplicated in drivers, move it to the common function. Call this function also in the bmp display command to consider "splashpos" settings.

Awesome!

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750

#7 lore raw

PATCH 1/1 video: consolidate splash screen alignment code

In reply to Anatolij Gustschin
Quoted 5 lines · On Tue, 2 Jul 2013 00:04:05 +0200 Anatolij Gustschin <[email protected]> wrote:

Code for checking "splashpos" environment variable is duplicated in drivers, move it to the common function. Call this function also in the bmp display command to consider "splashpos" settings.

Quoted 8 lines
---
 common/cmd_bmp.c            |    3 +++
 common/lcd.c                |   19 ++-----------------
 common/splash.c             |   25 +++++++++++++++++++++++++
 drivers/video/cfb_console.c |   24 ++----------------------
 include/splash.h            |    7 +++++++
 5 files changed, 39 insertions(+), 39 deletions(-)

Applied to u-boot-video/master. Thanks!

Anatolij