libpayload: fix garbage on screen with Geode-LX VGA

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
This commit is contained in:
Jens Rottmann 2010-08-18 21:23:27 +00:00 committed by Patrick Georgi
parent d6c4395927
commit ca1a762479
1 changed files with 3 additions and 3 deletions

View File

@ -206,7 +206,7 @@ static void geodelx_set_palette(int entry, unsigned int color)
static void geodelx_scroll_up(void) static void geodelx_scroll_up(void)
{ {
unsigned char *dst = FB; unsigned char *dst = FB;
unsigned char *src = FB + vga_mode.hactive; unsigned char *src = FB + FONT_HEIGHT * vga_mode.hactive;
int y; int y;
for(y = 0; y < vga_mode.vactive - FONT_HEIGHT; 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; src += vga_mode.hactive;
} }
dst = FB + (vga_mode.vactive - FONT_HEIGHT) * vga_mode.hactive;
for(; y < vga_mode.vactive; y++) { for(; y < vga_mode.vactive; y++) {
memset(dst, 0, vga_mode.hactive); memset(dst, 0, vga_mode.hactive);
dst += vga_mode.hactive; dst += vga_mode.hactive;
@ -280,6 +278,8 @@ static int geodelx_init(void)
geodelx_set_palette(i, vga_colors[i]); geodelx_set_palette(i, vga_colors[i]);
} }
geodelx_clear();
return 0; return 0;
} }