]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
cfb_console: flush FB cache at end of public functions
authorEric Nelson <eric.nelson@boundarydevices.com>
Mon, 6 May 2013 12:27:28 +0000 (14:27 +0200)
committerAnatolij Gustschin <agust@denx.de>
Mon, 6 May 2013 12:53:10 +0000 (14:53 +0200)
Removed internal cache_flush operations and placed a flush of the
entire frame-buffer at the end of each public function.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
drivers/video/cfb_console.c

index 61e1058adcfdcaf3744d0e7f2fd8f374132d5e79..b7692225f38f7bdc40564150291a5ba9b316c946 100644 (file)
@@ -568,8 +568,6 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)
                                        SWAP32((video_font_draw_table32
                                                [bits & 15][3] & eorx) ^ bgx);
                        }
-                       if (cfb_do_flush_cache)
-                               flush_cache((ulong)dest0, 32);
                        dest0 += VIDEO_FONT_WIDTH * VIDEO_PIXEL_SIZE;
                        s++;
                }
@@ -638,8 +636,6 @@ static void video_invertchar(int xx, int yy)
                for (x = firstx; x < lastx; x++) {
                        u8 *dest = (u8 *)(video_fb_address) + x + y;
                        *dest = ~*dest;
-                       if (cfb_do_flush_cache)
-                               flush_cache((ulong)dest, 4);
                }
        }
 }
@@ -683,6 +679,8 @@ void console_cursor(int state)
                }
                cursor_state = state;
        }
+       if (cfb_do_flush_cache)
+               flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
 }
 #endif
 
@@ -735,8 +733,6 @@ static void console_clear_line(int line, int begin, int end)
                        memsetl(offset + i * VIDEO_LINE_LEN, size, bgx);
        }
 #endif
-       if (cfb_do_flush_cache)
-               flush_cache((ulong)CONSOLE_ROW_FIRST, CONSOLE_SIZE);
 }
 
 static void console_scrollup(void)
@@ -1142,6 +1138,8 @@ void video_putc(const char c)
 #else
        parse_putc(c);
 #endif
+       if (cfb_do_flush_cache)
+               flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
 }
 
 void video_puts(const char *s)
@@ -1795,6 +1793,8 @@ int video_display_bitmap(ulong bmp_image, int x, int y)
        }
 #endif
 
+       if (cfb_do_flush_cache)
+               flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
        return (0);
 }
 #endif
@@ -2205,6 +2205,9 @@ static int video_init(void)
        console_col = 0;
        console_row = 0;
 
+       if (cfb_do_flush_cache)
+               flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
+
        return 0;
 }