[coreboot] r3186 - trunk/payloads/libpayload/drivers

svn at coreboot.org svn at coreboot.org
Sat Mar 22 16:27:26 CET 2008


Author: jcrouse
Date: 2008-03-22 16:27:26 +0100 (Sat, 22 Mar 2008)
New Revision: 3186

Modified:
   trunk/payloads/libpayload/drivers/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>

-This line, and those below, will be ignored--

M    libpayload/drivers/vga.c


Modified: trunk/payloads/libpayload/drivers/vga.c
===================================================================
--- trunk/payloads/libpayload/drivers/vga.c	2008-03-21 18:37:23 UTC (rev 3185)
+++ trunk/payloads/libpayload/drivers/vga.c	2008-03-22 15:27:26 UTC (rev 3186)
@@ -64,7 +64,7 @@
 	unsigned int addr;
 
 	addr = ((unsigned int)crtc_read(0x0E)) << 8;
-	addr += crtc_read(0x0E);
+	addr += crtc_read(0x0F);
 
 	cursorx = addr % WIDTH;
 	cursory = addr / WIDTH;
@@ -93,7 +93,7 @@
 
 	addr = cursorx + (WIDTH * cursory);
 	crtc_write(addr >> 8, 0x0E);
-	crtc_write(addr, 0x0E);
+	crtc_write(addr, 0x0F);
 }
 
 void vga_cursor_enable(int state)
@@ -115,7 +115,7 @@
 void vga_clear_line(uint8_t row, uint8_t ch, uint8_t attr)
 {
 	int col;
-	uint16_t *ptr = VIDEO(0, row);
+	uint16_t *ptr = VIDEO(row, 0);
 
 	for (col = 0; col < WIDTH; col++)
 		ptr[col] = ((attr & 0xFF) << 8) | (ch & 0xFF);
@@ -123,7 +123,7 @@
 
 static void vga_scroll_up(void)
 {
-	uint16_t *src = VIDEO(0, 1);
+	uint16_t *src = VIDEO(1, 0);
 	uint16_t *dst = VIDEO(0, 0);
 	int i;
 





More information about the coreboot mailing list