aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/i386/kernel/setup.c23
-rw-r--r--arch/x86_64/kernel/early_printk.c3
-rw-r--r--include/asm-i386/arch_hooks.h3
3 files changed, 15 insertions, 14 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
index 5f58f8cb9836..2d8782960f41 100644
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -1459,6 +1459,16 @@ void __init setup_arch(char **cmdline_p)
1459 1459
1460 parse_cmdline_early(cmdline_p); 1460 parse_cmdline_early(cmdline_p);
1461 1461
1462#ifdef CONFIG_EARLY_PRINTK
1463 {
1464 char *s = strstr(*cmdline_p, "earlyprintk=");
1465 if (s) {
1466 setup_early_printk(strchr(s, '=') + 1);
1467 printk("early console enabled\n");
1468 }
1469 }
1470#endif
1471
1462 max_low_pfn = setup_memory(); 1472 max_low_pfn = setup_memory();
1463 1473
1464 /* 1474 /*
@@ -1483,19 +1493,6 @@ void __init setup_arch(char **cmdline_p)
1483 * NOTE: at this point the bootmem allocator is fully available. 1493 * NOTE: at this point the bootmem allocator is fully available.
1484 */ 1494 */
1485 1495
1486#ifdef CONFIG_EARLY_PRINTK
1487 {
1488 char *s = strstr(*cmdline_p, "earlyprintk=");
1489 if (s) {
1490 extern void setup_early_printk(char *);
1491
1492 setup_early_printk(strchr(s, '=') + 1);
1493 printk("early console enabled\n");
1494 }
1495 }
1496#endif
1497
1498
1499 dmi_scan_machine(); 1496 dmi_scan_machine();
1500 1497
1501#ifdef CONFIG_X86_GENERICARCH 1498#ifdef CONFIG_X86_GENERICARCH
diff --git a/arch/x86_64/kernel/early_printk.c b/arch/x86_64/kernel/early_printk.c
index 6dffb498ccd7..6fcdcb80b07a 100644
--- a/arch/x86_64/kernel/early_printk.c
+++ b/arch/x86_64/kernel/early_printk.c
@@ -21,7 +21,7 @@
21#define MAX_XPOS max_xpos 21#define MAX_XPOS max_xpos
22 22
23static int max_ypos = 25, max_xpos = 80; 23static int max_ypos = 25, max_xpos = 80;
24static int current_ypos = 1, current_xpos = 0; 24static int current_ypos = 25, current_xpos = 0;
25 25
26static void early_vga_write(struct console *con, const char *str, unsigned n) 26static void early_vga_write(struct console *con, const char *str, unsigned n)
27{ 27{
@@ -244,6 +244,7 @@ int __init setup_early_printk(char *opt)
244 && SCREEN_INFO.orig_video_isVGA == 1) { 244 && SCREEN_INFO.orig_video_isVGA == 1) {
245 max_xpos = SCREEN_INFO.orig_video_cols; 245 max_xpos = SCREEN_INFO.orig_video_cols;
246 max_ypos = SCREEN_INFO.orig_video_lines; 246 max_ypos = SCREEN_INFO.orig_video_lines;
247 current_ypos = max_ypos;
247 early_console = &early_vga_console; 248 early_console = &early_vga_console;
248 } else if (!strncmp(buf, "simnow", 6)) { 249 } else if (!strncmp(buf, "simnow", 6)) {
249 simnow_init(buf + 6); 250 simnow_init(buf + 6);
diff --git a/include/asm-i386/arch_hooks.h b/include/asm-i386/arch_hooks.h
index 28b96a6fb9fa..238cf4275b96 100644
--- a/include/asm-i386/arch_hooks.h
+++ b/include/asm-i386/arch_hooks.h
@@ -24,4 +24,7 @@ extern void trap_init_hook(void);
24extern void time_init_hook(void); 24extern void time_init_hook(void);
25extern void mca_nmi_hook(void); 25extern void mca_nmi_hook(void);
26 26
27extern int setup_early_printk(char *);
28extern void early_printk(const char *fmt, ...) __attribute__((format(printf,1,2)));
29
27#endif 30#endif