diff options
author | Eric Nelson <eric.nelson@boundarydevices.com> | 2013-05-06 14:27:28 +0200 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2013-11-22 13:11:03 +0800 |
commit | 5001a45aa84134504db31a8bc5ca3e2c5a41195b (patch) | |
tree | 6c015c14c2b3155e7ccbc1808f6e837c0abba1bc /drivers/video | |
parent | 101e40f636c950eaf726f26b8246b2dde8ede6a5 (diff) | |
download | u-boot-imx-5001a45aa84134504db31a8bc5ca3e2c5a41195b.zip u-boot-imx-5001a45aa84134504db31a8bc5ca3e2c5a41195b.tar.gz u-boot-imx-5001a45aa84134504db31a8bc5ca3e2c5a41195b.tar.bz2 |
cfb_console: flush FB cache at end of public functions
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>
(cherry picked from commit db0d47dd433bc7ba60b927fb0ff6835758a8893d)
Signed-off-by: Jason Liu <r64343@freescale.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/cfb_console.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index 61e1058..b769222 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -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; } |