[coreboot] r3498 - trunk/payloads/libpayload/drivers/video

svn at coreboot.org svn at coreboot.org
Mon Aug 11 19:19:11 CEST 2008


Author: jcrouse
Date: 2008-08-11 19:19:10 +0200 (Mon, 11 Aug 2008)
New Revision: 3498

Modified:
   trunk/payloads/libpayload/drivers/video/vga.c
Log:
Make cursor positioning work by using both halves of the VGA cursor
position register.
 
Have vga_scroll_up() and vga_clear_line() present row/column arguments to
the VIDEO() macro in the right order.
 
Signed-off-by: Jonathan A. Kollasch <jakllsch at kollasch.net>
Acked-by: Jordan Crouse <jordan.crouse at amd.com>


Modified: trunk/payloads/libpayload/drivers/video/vga.c
===================================================================
--- trunk/payloads/libpayload/drivers/video/vga.c	2008-08-11 17:10:58 UTC (rev 3497)
+++ trunk/payloads/libpayload/drivers/video/vga.c	2008-08-11 17:19:10 UTC (rev 3498)
@@ -54,7 +54,7 @@
 {
 	unsigned int addr;
 	addr = ((unsigned int) crtc_read(0x0E)) << 8;
-	addr += crtc_read(0x0E);
+	addr += crtc_read(0x0F);
 
 	*x = addr % VIDEO_COLS;
 	*y = addr / VIDEO_COLS;
@@ -68,7 +68,7 @@
 
 	addr = x + (VIDEO_COLS * y);
 	crtc_write(addr >> 8, 0x0E);
-	crtc_write(addr, 0x0E);
+	crtc_write(addr, 0x0F);
 }
 
 static void vga_enable_cursor(int state)
@@ -87,7 +87,7 @@
 static void vga_clear_line(u8 row, u8 ch, u8 attr)
 {
 	int col;
-	u16 *ptr = VIDEO(0, row);
+	u16 *ptr = VIDEO(row, 0);
 
 	for(col = 0; col < VIDEO_COLS; col++)
 		ptr[col] = ((attr & 0xFF) << 8) | (ch & 0xFF);
@@ -95,7 +95,7 @@
 
 static void vga_scroll_up(void)
 {
-	u16 *src = VIDEO(0,1);
+	u16 *src = VIDEO(1,0);
 	u16 *dst = VIDEO(0,0);
 	int i;
 





More information about the coreboot mailing list