From: Finn Thain Date: Sat, 12 Apr 2014 13:49:30 +0000 (+1000) Subject: m68k/mvme16x: Adopt common boot console X-Git-Tag: omap-for-v3.16/fixes-against-rc1~39^2~55^2~6 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c46f46d02c90959b82b99badfadc575081666aae;p=pandora-kernel.git m68k/mvme16x: Adopt common boot console In a multi-platform kernel binary we only need one early console instance. The difficulty here is that the common early console is started by early_param(), whereas the MVME16x instance is started later by config_mvme16x(). That means some interrupt setup must be done earlier. Signed-off-by: Finn Thain Tested-by: Stephen N Chivers [Geert] Tag debug_cons_write() with __ref to kill section mismatch warning Signed-off-by: Geert Uytterhoeven --- diff --git a/arch/m68k/kernel/early_printk.c b/arch/m68k/kernel/early_printk.c index 919b83794545..ff9708d71921 100644 --- a/arch/m68k/kernel/early_printk.c +++ b/arch/m68k/kernel/early_printk.c @@ -12,12 +12,21 @@ #include #include +extern void mvme16x_cons_write(struct console *co, + const char *str, unsigned count); + asmlinkage void __init debug_cons_nputs(const char *s, unsigned n); -static void debug_cons_write(struct console *c, - const char *s, unsigned n) +static void __ref debug_cons_write(struct console *c, + const char *s, unsigned n) { - debug_cons_nputs(s, n); +#if !(defined(CONFIG_SUN3) || defined(CONFIG_M68360) || \ + defined(CONFIG_M68000) || defined(CONFIG_COLDFIRE)) + if (MACH_IS_MVME16x) + mvme16x_cons_write(c, s, n); + else + debug_cons_nputs(s, n); +#endif } static struct console early_console_instance = { @@ -29,10 +38,6 @@ static struct console early_console_instance = { static int __init setup_early_printk(char *buf) { - /* MVME16x registers an early console after interrupt setup. */ - if (MACH_IS_MVME16x) - return 0; - if (early_console || buf) return 0; @@ -52,7 +57,7 @@ early_param("earlyprintk", setup_early_printk); static int __init unregister_early_console(void) { - if (!early_console) + if (!early_console || MACH_IS_MVME16x) return 0; return unregister_console(early_console); Reading git-diff-tree failed