[POWERPC] Call add_preferred_console when MPSC is console
authorMark A. Greer <mgreer@mvista.com>
Thu, 7 Jun 2007 00:38:00 +0000 (10:38 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 25 Jun 2007 07:02:09 +0000 (17:02 +1000)
When a Marvell MPSC (serial controller) port is the specified
/chosen/stdout-path device, call 'add_preferred_console()' so the user
doesn't have to specify a 'console=ttyMMx' cmdline argument.

Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Acked-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/sysdev/mv64x60_dev.c

index 4b0a9c88eeb3563937638b34ad8e26527418bb70..b618fa60aef342f42dad4e845f1d9a73718cfee3 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/console.h>
 #include <linux/mv643xx.h>
 #include <linux/platform_device.h>
 
@@ -420,3 +421,30 @@ error:
        return err;
 }
 arch_initcall(mv64x60_device_setup);
+
+static int __init mv64x60_add_mpsc_console(void)
+{
+       struct device_node *np = NULL;
+       const char *prop;
+
+       prop = of_get_property(of_chosen, "linux,stdout-path", NULL);
+       if (prop == NULL)
+               goto not_mpsc;
+
+       np = of_find_node_by_path(prop);
+       if (!np)
+               goto not_mpsc;
+
+       if (!of_device_is_compatible(np, "marvell,mpsc"))
+               goto not_mpsc;
+
+       prop = of_get_property(np, "block-index", NULL);
+       if (!prop)
+               goto not_mpsc;
+
+       add_preferred_console("ttyMM", *(int *)prop, NULL);
+
+not_mpsc:
+       return 0;
+}
+console_initcall(mv64x60_add_mpsc_console);