Patchwork [U-Boot,v6,1/4] lcd: add clear and draw bitmap declaration

login
register
mail settings
Submitter Anatolij Gustschin
Date Oct. 30, 2011, 6:21 p.m.
Message ID <1319998874-16164-1-git-send-email-agust@denx.de>
Download mbox | patch
Permalink /patch/122657/
State Accepted
Commit 02110903a83539da35cf6b1bbd853ce0351f7c95
Delegated to: Anatolij Gustschin
Headers show

Comments

Anatolij Gustschin - Oct. 30, 2011, 6:21 p.m.
From: Che-liang Chiou <clchiou@chromium.org>

The functions for clearing and drawing bitmaps on the screen were not
exposed publicly and are made public in this patch in preparation for
implementing the display interface of api_public.h.

Signed-off-by: Che-Liang Chiou <clchiou@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
Changes since V5:
 - fix compile issues:
  lcd.c:81: error: conflicting types for 'lcd_clear'
  /home/ag/u-boot/u-boot-video/include/lcd.h:213: error: previous declaration of 'lcd_clear' was here
  lcd.c: In function 'do_lcd_clear':
  lcd.c:359: error: too few arguments to function 'lcd_clear'
  lcd.c: At top level:
  lcd.c:364: error: conflicting types for 'lcd_clear'
  lcd.c:81: error: previous declaration of 'lcd_clear' was here
  lcd.c: In function 'lcd_clear':
  lcd.c:405: warning: 'return' with a value, in function returning void
  lcd.c: At top level:
  lcd.c:408: warning: initialization from incompatible pointer type
  make[1]: *** [lcd.o] Error 1
  make: *** [common/libcommon.o] Error 2

 common/cmd_bmp.c |    4 +---
 common/lcd.c     |   16 ++++++++++------
 include/lcd.h    |    2 ++
 3 files changed, 13 insertions(+), 9 deletions(-)
Anatolij Gustschin - Nov. 10, 2011, 10:31 p.m.
On Sun, 30 Oct 2011 19:21:14 +0100
Anatolij Gustschin <agust@denx.de> wrote:

> From: Che-liang Chiou <clchiou@chromium.org>
> 
> The functions for clearing and drawing bitmaps on the screen were not
> exposed publicly and are made public in this patch in preparation for
> implementing the display interface of api_public.h.
> 
> Signed-off-by: Che-Liang Chiou <clchiou@chromium.org>
> Acked-by: Mike Frysinger <vapier@gentoo.org>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
> Changes since V5:
>  - fix compile issues:
>   lcd.c:81: error: conflicting types for 'lcd_clear'
>   /home/ag/u-boot/u-boot-video/include/lcd.h:213: error: previous declaration of 'lcd_clear' was here
>   lcd.c: In function 'do_lcd_clear':
>   lcd.c:359: error: too few arguments to function 'lcd_clear'
>   lcd.c: At top level:
>   lcd.c:364: error: conflicting types for 'lcd_clear'
>   lcd.c:81: error: previous declaration of 'lcd_clear' was here
>   lcd.c: In function 'lcd_clear':
>   lcd.c:405: warning: 'return' with a value, in function returning void
>   lcd.c: At top level:
>   lcd.c:408: warning: initialization from incompatible pointer type
>   make[1]: *** [lcd.o] Error 1
>   make: *** [common/libcommon.o] Error 2
> 
>  common/cmd_bmp.c |    4 +---
>  common/lcd.c     |   16 ++++++++++------
>  include/lcd.h    |    2 ++
>  3 files changed, 13 insertions(+), 9 deletions(-)

Applied to u-boot-video/master, thanks.

Anatolij

Patch

diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c
index 23fc82f..682f395 100644
--- a/common/cmd_bmp.c
+++ b/common/cmd_bmp.c
@@ -237,9 +237,7 @@  static int bmp_display(ulong addr, int x, int y)
 	}
 
 #if defined(CONFIG_LCD)
-	extern int lcd_display_bitmap (ulong, int, int);
-
-	ret = lcd_display_bitmap ((unsigned long)bmp, x, y);
+	ret = lcd_display_bitmap((ulong)bmp, x, y);
 #elif defined(CONFIG_VIDEO)
 	extern int video_display_bitmap (ulong, int, int);
 
diff --git a/common/lcd.c b/common/lcd.c
index d9cb8ca..20e97b9 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -78,7 +78,6 @@  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 * const argv[]);
 static void *lcd_logo (void);
 
 static int lcd_getbgcolor (void);
@@ -353,7 +352,14 @@  int drv_lcd_init (void)
 }
 
 /*----------------------------------------------------------------------*/
-static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
+static
+int do_lcd_clear(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+{
+	lcd_clear();
+	return 0;
+}
+
+void lcd_clear(void)
 {
 #if LCD_BPP == LCD_MONOCHROME
 	/* Setting the palette */
@@ -394,12 +400,10 @@  static int lcd_clear (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]
 
 	console_col = 0;
 	console_row = 0;
-
-	return (0);
 }
 
 U_BOOT_CMD(
-	cls,	1,	1,	lcd_clear,
+	cls,	1,	1,	do_lcd_clear,
 	"clear screen",
 	""
 );
@@ -413,7 +417,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();
 	lcd_enable ();
 
 	/* Initialize the console */
diff --git a/include/lcd.h b/include/lcd.h
index 89cc90c..83b50f4 100644
--- a/include/lcd.h
+++ b/include/lcd.h
@@ -210,6 +210,8 @@  void	lcd_disable	(void);
 void	lcd_putc	(const char c);
 void	lcd_puts	(const char *s);
 void	lcd_printf	(const char *fmt, ...);
+void	lcd_clear(void);
+int	lcd_display_bitmap(ulong bmp_image, int x, int y);
 
 /* Allow boards to customize the information displayed */
 void lcd_show_board_info(void);