diff options
author | Jan Beulich <JBeulich@novell.com> | 2005-06-23 03:08:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 12:45:10 -0400 |
commit | 799d19f6ec5ca2102c61122f5219a17f1c4e961a (patch) | |
tree | 5e33a045b5fcc003dae052e8f62e1e4b47f908a2 /arch/x86_64 | |
parent | 7fbb4f6e6873593a2defb8f66512f55d08d88106 (diff) |
[PATCH] allow early printk to use more than 25 lines
Allow early printk code to take advantage of the full size of the screen, not
just the first 25 lines.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64')
-rw-r--r-- | arch/x86_64/kernel/early_printk.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/x86_64/kernel/early_printk.c b/arch/x86_64/kernel/early_printk.c index e3a19e8ebbf8..9631c747c5e3 100644 --- a/arch/x86_64/kernel/early_printk.c +++ b/arch/x86_64/kernel/early_printk.c | |||
@@ -2,20 +2,24 @@ | |||
2 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
3 | #include <linux/init.h> | 3 | #include <linux/init.h> |
4 | #include <linux/string.h> | 4 | #include <linux/string.h> |
5 | #include <linux/tty.h> | ||
5 | #include <asm/io.h> | 6 | #include <asm/io.h> |
6 | #include <asm/processor.h> | 7 | #include <asm/processor.h> |
7 | 8 | ||
8 | /* Simple VGA output */ | 9 | /* Simple VGA output */ |
9 | 10 | ||
10 | #ifdef __i386__ | 11 | #ifdef __i386__ |
12 | #include <asm/setup.h> | ||
11 | #define VGABASE (__ISA_IO_base + 0xb8000) | 13 | #define VGABASE (__ISA_IO_base + 0xb8000) |
12 | #else | 14 | #else |
15 | #include <asm/bootsetup.h> | ||
13 | #define VGABASE ((void __iomem *)0xffffffff800b8000UL) | 16 | #define VGABASE ((void __iomem *)0xffffffff800b8000UL) |
14 | #endif | 17 | #endif |
15 | 18 | ||
16 | #define MAX_YPOS 25 | 19 | #define MAX_YPOS max_ypos |
17 | #define MAX_XPOS 80 | 20 | #define MAX_XPOS max_xpos |
18 | 21 | ||
22 | static int max_ypos = 25, max_xpos = 80; | ||
19 | static int current_ypos = 1, current_xpos = 0; | 23 | static int current_ypos = 1, current_xpos = 0; |
20 | 24 | ||
21 | static void early_vga_write(struct console *con, const char *str, unsigned n) | 25 | static void early_vga_write(struct console *con, const char *str, unsigned n) |
@@ -196,7 +200,10 @@ int __init setup_early_printk(char *opt) | |||
196 | } else if (!strncmp(buf, "ttyS", 4)) { | 200 | } else if (!strncmp(buf, "ttyS", 4)) { |
197 | early_serial_init(buf); | 201 | early_serial_init(buf); |
198 | early_console = &early_serial_console; | 202 | early_console = &early_serial_console; |
199 | } else if (!strncmp(buf, "vga", 3)) { | 203 | } else if (!strncmp(buf, "vga", 3) |
204 | && SCREEN_INFO.orig_video_isVGA == 1) { | ||
205 | max_xpos = SCREEN_INFO.orig_video_cols; | ||
206 | max_ypos = SCREEN_INFO.orig_video_lines; | ||
200 | early_console = &early_vga_console; | 207 | early_console = &early_vga_console; |
201 | } | 208 | } |
202 | early_console_initialized = 1; | 209 | early_console_initialized = 1; |