]> git.sur5r.net Git - u-boot/blobdiff - drivers/video/cfb_console.c
Merge branch 'rmobile' of git://git.denx.de/u-boot-sh
[u-boot] / drivers / video / cfb_console.c
index 923192787996f70942b766c1c9086f787ee04e3a..a347e13d7de8fa5fc360524a76afdd85c70cb26e 100644 (file)
@@ -944,7 +944,7 @@ static void parse_putc(const char c)
                CURSOR_SET;
 }
 
-void video_putc(struct stdio_dev *dev, const char c)
+static void video_putc(struct stdio_dev *dev, const char c)
 {
 #ifdef CONFIG_CFB_CONSOLE_ANSI
        int i;
@@ -1158,12 +1158,21 @@ void video_putc(struct stdio_dev *dev, const char c)
                flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
 }
 
-void video_puts(struct stdio_dev *dev, const char *s)
+static void video_puts(struct stdio_dev *dev, const char *s)
 {
+       int flush = cfb_do_flush_cache;
        int count = strlen(s);
 
+       /* temporarily disable cache flush */
+       cfb_do_flush_cache = 0;
+
        while (count--)
                video_putc(dev, *s++);
+
+       if (flush) {
+               cfb_do_flush_cache = flush;
+               flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
+       }
 }
 
 /*
@@ -1171,14 +1180,11 @@ void video_puts(struct stdio_dev *dev, const char *s)
  * video_set_lut() if they do not support 8 bpp format.
  * Implement weak default function instead.
  */
-void __video_set_lut(unsigned int index, unsigned char r,
+__weak void video_set_lut(unsigned int index, unsigned char r,
                     unsigned char g, unsigned char b)
 {
 }
 
-void video_set_lut(unsigned int, unsigned char, unsigned char, unsigned char)
-       __attribute__ ((weak, alias("__video_set_lut")));
-
 #if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)
 
 #define FILL_8BIT_332RGB(r,g,b)        {                       \
@@ -2240,15 +2246,12 @@ static int video_init(void)
  * Implement a weak default function for boards that optionally
  * need to skip the video initialization.
  */
-int __board_video_skip(void)
+__weak int board_video_skip(void)
 {
        /* As default, don't skip test */
        return 0;
 }
 
-int board_video_skip(void)
-       __attribute__ ((weak, alias("__board_video_skip")));
-
 int drv_video_init(void)
 {
        int skip_dev_init;