]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/kernel/udbg.c
[POWERPC] Various fixes to pcibios_enable_device()
[linux-2.6-omap-h63xx.git] / arch / powerpc / kernel / udbg.c
index 7e0971868fc25ec77377feb5ac7c34e195a1fd8f..eba148f2a31c09b7b65a68def74628b4987c3815 100644 (file)
@@ -51,6 +51,15 @@ void __init udbg_early_init(void)
        udbg_init_pas_realmode();
 #elif defined(CONFIG_BOOTX_TEXT)
        udbg_init_btext();
+#elif defined(CONFIG_PPC_EARLY_DEBUG_44x)
+       /* PPC44x debug */
+       udbg_init_44x_as1();
+#elif defined(CONFIG_PPC_EARLY_DEBUG_CPM)
+       udbg_init_cpm();
+#endif
+
+#ifdef CONFIG_PPC_EARLY_DEBUG
+       console_loglevel = 10;
 #endif
 }
 
@@ -142,29 +151,28 @@ static void udbg_console_write(struct console *con, const char *s,
 static struct console udbg_console = {
        .name   = "udbg",
        .write  = udbg_console_write,
-       .flags  = CON_PRINTBUFFER | CON_ENABLED,
+       .flags  = CON_PRINTBUFFER | CON_ENABLED | CON_BOOT,
        .index  = -1,
 };
 
 static int early_console_initialized;
 
-void __init disable_early_printk(void)
+/*
+ * Called by setup_system after ppc_md->probe and ppc_md->early_init.
+ * Call it again after setting udbg_putc in ppc_md->setup_arch.
+ */
+void __init register_early_udbg_console(void)
 {
-       if (!early_console_initialized)
+       if (early_console_initialized)
+               return;
+
+       if (!udbg_putc)
                return;
+
        if (strstr(boot_command_line, "udbg-immortal")) {
                printk(KERN_INFO "early console immortal !\n");
-               return;
+               udbg_console.flags &= ~CON_BOOT;
        }
-       unregister_console(&udbg_console);
-       early_console_initialized = 0;
-}
-
-/* called by setup_system */
-void register_early_udbg_console(void)
-{
-       if (early_console_initialized)
-               return;
        early_console_initialized = 1;
        register_console(&udbg_console);
 }