1 | /* |
---|---|
2 | * This file is subject to the terms and conditions of the GNU General Public |
3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. |
5 | * |
6 | * Copyright (C) 2002, 2003, 06, 07 Ralf Baechle (ralf@linux-mips.org) |
7 | * Copyright (C) 2007 MIPS Technologies, Inc. |
8 | * written by Ralf Baechle (ralf@linux-mips.org) |
9 | */ |
10 | #include <linux/kernel.h> |
11 | #include <linux/console.h> |
12 | #include <linux/printk.h> |
13 | #include <linux/init.h> |
14 | |
15 | #include <asm/setup.h> |
16 | |
17 | static void early_console_write(struct console *con, const char *s, unsigned n) |
18 | { |
19 | while (n-- && *s) { |
20 | if (*s == '\n') |
21 | prom_putchar('\r'); |
22 | prom_putchar(*s); |
23 | s++; |
24 | } |
25 | } |
26 | |
27 | static struct console early_console_prom = { |
28 | .name = "early", |
29 | .write = early_console_write, |
30 | .flags = CON_PRINTBUFFER | CON_BOOT, |
31 | .index = -1 |
32 | }; |
33 | |
34 | void __init setup_early_printk(void) |
35 | { |
36 | if (early_console) |
37 | return; |
38 | early_console = &early_console_prom; |
39 | |
40 | register_console(&early_console_prom); |
41 | } |
42 |