]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/kernel/rtas.c
[PATCH] powerpc: Make early debugging configurable via Kconfig
[linux-2.6-omap-h63xx.git] / arch / powerpc / kernel / rtas.c
index ae2e2a31a705d9360b2d69225d8c7a6c45ecf45a..68bcd2824bc6352ed8507b9dc4d66312d852fbe1 100644 (file)
@@ -29,6 +29,7 @@
 #include <asm/delay.h>
 #include <asm/uaccess.h>
 #include <asm/lmb.h>
+#include <asm/udbg.h>
 
 struct rtas_t rtas = {
        .lock = SPIN_LOCK_UNLOCKED
@@ -52,7 +53,7 @@ EXPORT_SYMBOL(rtas_flash_term_hook);
  * are designed only for very early low-level debugging, which
  * is why the token is hard-coded to 10.
  */
-void call_rtas_display_status(unsigned char c)
+static void call_rtas_display_status(char c)
 {
        struct rtas_args *args = &rtas.args;
        unsigned long s;
@@ -65,14 +66,14 @@ void call_rtas_display_status(unsigned char c)
        args->nargs = 1;
        args->nret  = 1;
        args->rets  = (rtas_arg_t *)&(args->args[1]);
-       args->args[0] = (int)c;
+       args->args[0] = (unsigned char)c;
 
        enter_rtas(__pa(args));
 
        spin_unlock_irqrestore(&rtas.lock, s);
 }
 
-void call_rtas_display_status_delay(unsigned char c)
+static void call_rtas_display_status_delay(char c)
 {
        static int pending_newline = 0;  /* did last write end with unprinted newline? */
        static int width = 16;
@@ -96,6 +97,11 @@ void call_rtas_display_status_delay(unsigned char c)
        }
 }
 
+void __init udbg_init_rtas(void)
+{
+       udbg_putc = call_rtas_display_status_delay;
+}
+
 void rtas_progress(char *s, unsigned short hex)
 {
        struct device_node *root;