earlyprintk,vga,kdb: Fix \b and \r for earlyprintk=vga with kdb

Allow kdb to work properly with with earlyprintk=vga by interpreting
the backspace and carriage return output characters.  These
interpretation of these characters is used for simple line editing
provided in the kdb shell.

CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: H. Peter Anvin <hpa@zytor.com>
CC: x86@kernel.org
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
This commit is contained in:
Jason Wessel 2010-05-20 21:04:31 -05:00
parent 9731191f75
commit 61eaf539b9

View file

@ -41,6 +41,14 @@ static void early_vga_write(struct console *con, const char *str, unsigned n)
writew(0x720, VGABASE + 2*(max_xpos*j + i)); writew(0x720, VGABASE + 2*(max_xpos*j + i));
current_ypos = max_ypos-1; current_ypos = max_ypos-1;
} }
#ifdef CONFIG_KGDB_KDB
if (c == '\b') {
if (current_xpos > 0)
current_xpos--;
} else if (c == '\r') {
current_xpos = 0;
} else
#endif
if (c == '\n') { if (c == '\n') {
current_xpos = 0; current_xpos = 0;
current_ypos++; current_ypos++;