diff options
author | Milton Miller <miltonm@bga.com> | 2007-06-10 00:32:43 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-06-13 21:56:17 -0400 |
commit | 220ddc0847ebd42d18ee78c7e1c2f4c2e3be637d (patch) | |
tree | 22f9a16bd62bd5f0041673dfa0abbfd695a0144a /arch/powerpc | |
parent | c63c4faa8cf055319c7ed557d2050c1c3776fac5 (diff) |
[POWERPC] Fix console output getting dropped on platforms without udbg_putc
Previously, registering this early console would just result
in dropping early buffered printk output until a udbg_putc
was registered.
However, commit 69331af79cf29e26d1231152a172a1a10c2df511
clears the CON_PRINTBUFFER flag on the main console when a
CON_BOOT (early) console has been registered, resulting in
the buffered messages never being displayed to the user.
This fixes the problem by making sure we don't register udbg_console
on platforms that don't implement udbg_putc.
Signed-off-by: Milton Miller <miltonm@bga.com>
Acked-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/kernel/udbg.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c index 87703df87509..cbca1df8bc60 100644 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c | |||
@@ -151,12 +151,18 @@ static struct console udbg_console = { | |||
151 | 151 | ||
152 | static int early_console_initialized; | 152 | static int early_console_initialized; |
153 | 153 | ||
154 | /* called by setup_system */ | 154 | /* |
155 | * Called by setup_system after ppc_md->probe and ppc_md->early_init. | ||
156 | * Call it again after setting udbg_putc in ppc_md->setup_arch. | ||
157 | */ | ||
155 | void register_early_udbg_console(void) | 158 | void register_early_udbg_console(void) |
156 | { | 159 | { |
157 | if (early_console_initialized) | 160 | if (early_console_initialized) |
158 | return; | 161 | return; |
159 | 162 | ||
163 | if (!udbg_putc) | ||
164 | return; | ||
165 | |||
160 | if (strstr(boot_command_line, "udbg-immortal")) { | 166 | if (strstr(boot_command_line, "udbg-immortal")) { |
161 | printk(KERN_INFO "early console immortal !\n"); | 167 | printk(KERN_INFO "early console immortal !\n"); |
162 | udbg_console.flags &= ~CON_BOOT; | 168 | udbg_console.flags &= ~CON_BOOT; |