libpayload: fix garbage on screen with Geode-LX VGA
authorJens Rottmann <JRottmann@LiPPERTEmbedded.de>
Wed, 18 Aug 2010 21:23:27 +0000 (21:23 +0000)
committerPatrick Georgi <patrick.georgi@coresystems.de>
Wed, 18 Aug 2010 21:23:27 +0000 (21:23 +0000)
Clear initial garbage in VGA memory and fix scroll_up, which scrolled 1 scanline
instead of 1 text line by mistake.

Signed-off-by: Jens Rottmann <JRottmann@LiPPERTEmbedded.de>
Acked-by: Patrick Georgi <patrick@georgi-clan.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5722 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/drivers/video/geodelx.c

index 382ae4943ea44aff8a6fe20c31b81a4eb5713bed..ede997cb263074ce503008d9d372dee144dbdc46 100644 (file)
@@ -206,7 +206,7 @@ static void geodelx_set_palette(int entry, unsigned int color)
 static void geodelx_scroll_up(void)
 {
        unsigned char *dst = FB;
-       unsigned char *src = FB + vga_mode.hactive;
+       unsigned char *src = FB + FONT_HEIGHT * vga_mode.hactive;
        int y;
 
        for(y = 0; y < vga_mode.vactive - FONT_HEIGHT; y++) {
@@ -216,8 +216,6 @@ static void geodelx_scroll_up(void)
                src += vga_mode.hactive;
        }
 
-       dst = FB + (vga_mode.vactive - FONT_HEIGHT) * vga_mode.hactive;
-
        for(; y < vga_mode.vactive; y++) {
                memset(dst, 0, vga_mode.hactive);
                dst += vga_mode.hactive;
@@ -280,6 +278,8 @@ static int geodelx_init(void)
                geodelx_set_palette(i, vga_colors[i]);
        }
 
+       geodelx_clear();
+
        return 0;
 }