]>
Commit | Line | Data |
---|---|---|
36a88530 RB |
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 ([email protected]) | |
7 | * Copyright (C) 2007 MIPS Technologies, Inc. | |
8 | * written by Ralf Baechle ([email protected]) | |
9 | */ | |
d0380e6c | 10 | #include <linux/kernel.h> |
36a88530 | 11 | #include <linux/console.h> |
d0380e6c | 12 | #include <linux/printk.h> |
36a88530 RB |
13 | #include <linux/init.h> |
14 | ||
07cdb784 DV |
15 | #include <asm/setup.h> |
16 | ||
36a88530 RB |
17 | extern void prom_putchar(char); |
18 | ||
f7be4e75 | 19 | static void early_console_write(struct console *con, const char *s, unsigned n) |
36a88530 RB |
20 | { |
21 | while (n-- && *s) { | |
22 | if (*s == '\n') | |
23 | prom_putchar('\r'); | |
24 | prom_putchar(*s); | |
25 | s++; | |
26 | } | |
27 | } | |
28 | ||
d0380e6c | 29 | static struct console early_console_prom = { |
36a88530 RB |
30 | .name = "early", |
31 | .write = early_console_write, | |
32 | .flags = CON_PRINTBUFFER | CON_BOOT, | |
33 | .index = -1 | |
34 | }; | |
35 | ||
36 | void __init setup_early_printk(void) | |
37 | { | |
d0380e6c | 38 | if (early_console) |
36ea1d57 | 39 | return; |
d0380e6c | 40 | early_console = &early_console_prom; |
36ea1d57 | 41 | |
d0380e6c | 42 | register_console(&early_console_prom); |
36a88530 | 43 | } |