ARM: Fix "Make low-level printk work" to use a separate config option
Arve Hjønnevåg [Sat, 15 Jun 2013 02:54:40 +0000 (19:54 -0700)]
Signed-off-by: Arve Hjønnevåg <arve@android.com>

arch/arm/Kconfig.debug
kernel/printk.c

index 21cc8a7..a640f09 100644 (file)
@@ -690,6 +690,14 @@ config EARLY_PRINTK
          kernel low-level debugging functions. Add earlyprintk to your
          kernel parameters to enable this console.
 
+config EARLY_PRINTK_DIRECT
+       bool "Early printk direct"
+       depends on DEBUG_LL
+       help
+         Say Y here if you want to have an early console using the
+         kernel low-level debugging functions and EARLY_PRINTK is
+         not early enough.
+
 config OC_ETM
        bool "On-chip ETM and ETB"
        depends on ARM_AMBA
index 9cb84eb..c2f720e 100644 (file)
@@ -51,7 +51,7 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/printk.h>
 
-#ifdef        CONFIG_DEBUG_LL
+#ifdef CONFIG_EARLY_PRINTK_DIRECT
 extern void printascii(char *);
 #endif
 
@@ -1556,10 +1556,6 @@ asmlinkage int vprintk_emit(int facility, int level,
         */
        text_len = vscnprintf(text, sizeof(textbuf), fmt, args);
 
-#ifdef CONFIG_DEBUG_LL
-       printascii(text);
-#endif
-
        /* mark and strip a trailing newline */
        if (text_len && text[text_len-1] == '\n') {
                text_len--;
@@ -1586,6 +1582,10 @@ asmlinkage int vprintk_emit(int facility, int level,
                }
        }
 
+#ifdef CONFIG_EARLY_PRINTK_DIRECT
+       printascii(text);
+#endif
+
        if (level == -1)
                level = default_message_loglevel;