Patchwork [libpayload] fix garbage on screen with Geode-LX VGA

login
register
about
Submitter Jens Rottmann
Date 2010-08-17 16:56:41
Message ID <4C6ABF49.5040802@LiPPERTEmbedded.de>
Download mbox | patch
Permalink /patch/1763/
State Accepted
Commit r5722
Headers show

Comments

Jens Rottmann - 2010-08-17 16:56:41
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>
---
Patrick Georgi - 2010-08-18 21:23:58
Am 17.08.2010 18:56, schrieb Jens Rottmann:
> 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>
looks good.
Acked-by: Patrick Georgi <patrick@georgi-clan.de>

and committed as r5722

Thanks,
Patrick Georgi

Patch

--- payloads/libpayload/drivers/video/geodelx.c	(revision 5697)
+++ payloads/libpayload/drivers/video/geodelx.c	(working copy)
@@ -206,7 +206,7 @@  static void geodelx_set_palette(int entr
 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;
 }