[U-Boot] [PATCH 1/2] lcd: allow to not draw the logo when clearing the screen

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sun Jun 21 21:52:21 CEST 2009


Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 common/lcd.c |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/common/lcd.c b/common/lcd.c
index 74a5c77..b5e81f1 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -78,7 +78,7 @@ static inline void lcd_putc_xy (ushort x, ushort y, uchar  c);
 
 static int lcd_init (void *lcdbase);
 
-static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]);
+static int lcd_clear (int draw_logo);
 extern void lcd_ctrl_init (void *lcdbase);
 extern void lcd_enable (void);
 static void *lcd_logo (void);
@@ -379,7 +379,12 @@ int drv_lcd_init (void)
 }
 
 /*----------------------------------------------------------------------*/
-static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
+static int do_lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
+{
+	return lcd_clear(1);
+}
+
+static int lcd_clear(int draw_logo)
 {
 #if LCD_BPP == LCD_MONOCHROME
 	/* Setting the palette */
@@ -414,9 +419,13 @@ static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 		COLOR_MASK(lcd_getbgcolor()),
 		lcd_line_length*panel_info.vl_row);
 #endif
-	/* Paint the logo and retrieve LCD base address */
-	debug ("[LCD] Drawing the logo...\n");
-	lcd_console_address = lcd_logo ();
+	if (draw_logo) {
+		/* Paint the logo and retrieve LCD base address */
+		debug ("[LCD] Drawing the logo...\n");
+		lcd_console_address = lcd_logo ();
+	} else {
+		lcd_console_address = lcd_base;
+	}
 
 	console_col = 0;
 	console_row = 0;
@@ -425,7 +434,7 @@ static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 }
 
 U_BOOT_CMD(
-	cls,	1,	1,	lcd_clear,
+	cls,	1,	1,	do_lcd_clear,
 	"clear screen",
 	""
 );
@@ -439,7 +448,7 @@ static int lcd_init (void *lcdbase)
 
 	lcd_ctrl_init (lcdbase);
 	lcd_is_enabled = 1;
-	lcd_clear (NULL, 1, 1, NULL);	/* dummy args */
+	lcd_clear (1);
 	lcd_enable ();
 
 	/* Initialize the console */
-- 
1.6.3.1



More information about the U-Boot mailing list