Add more ar7 fixes by DerAgo. Fix vlnyq initialistion on fritzbox, add prom_printf...
[openwrt/svn-archive/archive.git] / target / linux / ar7-2.6 / files / arch / mips / ar7 / prom.c
index 38037dd337100a5e05fc4c2de671dca00831e876..08904dee717e11832f45f951c7ca6507ed25bf10 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/serial_reg.h>
 #include <linux/spinlock.h>
 #include <linux/module.h>
+#include <linux/string.h>
 #include <asm/io.h>
 #include <asm/bootinfo.h>
 #include <asm/mips-boards/prom.h>
@@ -245,9 +246,12 @@ static void __init console_config(void)
                return;
 
 #ifdef CONFIG_KGDB
-       strcat(prom_getcmdline(), " console=kgdb");
-       kgdb_enabled = 1;
-       return;
+       if (!strstr(prom_getcmdline(), "nokgdb"))
+       {
+            strcat(prom_getcmdline(), " console=kgdb");
+            kgdb_enabled = 1;
+            return;
+       }
 #endif
 
        if ((s = prom_getenv("modetty0"))) {
@@ -307,6 +311,28 @@ int prom_putchar(char c)
        return 1;
 }
 
+// from adm5120/prom.c
+void prom_printf(char *fmt, ...)
+{
+    va_list args;
+    int l;
+    char *p, *buf_end;
+    char buf[1024];
+
+    va_start(args, fmt);
+    l = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf) */
+    va_end(args);
+
+    buf_end = buf + l;
+
+    for (p = buf; p < buf_end; p++) {
+        /* Crude cr/nl handling is better than none */
+        if (*p == '\n')
+            prom_putchar('\r');
+        prom_putchar(*p);
+    }
+}
+
 #ifdef CONFIG_KGDB
 int putDebugChar(char c)
 {