[MIPS] Fix and cleanup the mess that a dozen prom_printf variants are.
early_printk is a so much saner thing. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
@@ -65,5 +65,6 @@ obj-$(CONFIG_64BIT) += cpu-bugs64.o
|
||||
obj-$(CONFIG_I8253) += i8253.o
|
||||
|
||||
obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
|
||||
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
||||
|
||||
CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
|
||||
|
||||
40
arch/mips/kernel/early_printk.c
Normal file
40
arch/mips/kernel/early_printk.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 2002, 2003, 06, 07 Ralf Baechle (ralf@linux-mips.org)
|
||||
* Copyright (C) 2007 MIPS Technologies, Inc.
|
||||
* written by Ralf Baechle (ralf@linux-mips.org)
|
||||
*/
|
||||
#include <linux/console.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
extern void prom_putchar(char);
|
||||
|
||||
static void early_console_write(struct console *con, const char *s, unsigned n)
|
||||
{
|
||||
while (n-- && *s) {
|
||||
if (*s == '\n')
|
||||
prom_putchar('\r');
|
||||
prom_putchar(*s);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
static struct console early_console = {
|
||||
.name = "early",
|
||||
.write = early_console_write,
|
||||
.flags = CON_PRINTBUFFER | CON_BOOT,
|
||||
.index = -1
|
||||
};
|
||||
|
||||
void __init setup_early_printk(void)
|
||||
{
|
||||
register_console(&early_console);
|
||||
}
|
||||
|
||||
void __init disable_early_printk(void)
|
||||
{
|
||||
unregister_console(&early_console);
|
||||
}
|
||||
@@ -525,6 +525,14 @@ void __init setup_arch(char **cmdline_p)
|
||||
{
|
||||
cpu_probe();
|
||||
prom_init();
|
||||
|
||||
#ifdef CONFIG_EARLY_PRINTK
|
||||
{
|
||||
extern void setup_early_printk(void);
|
||||
|
||||
setup_early_printk();
|
||||
}
|
||||
#endif
|
||||
cpu_report();
|
||||
|
||||
#if defined(CONFIG_VT)
|
||||
|
||||
Reference in New Issue
Block a user