diff options
Diffstat (limited to 'arch/mips/dec/prom/console.c')
-rw-r--r-- | arch/mips/dec/prom/console.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/mips/dec/prom/console.c b/arch/mips/dec/prom/console.c new file mode 100644 index 000000000000..cade16ec7e5a --- /dev/null +++ b/arch/mips/dec/prom/console.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * arch/mips/dec/prom/console.c | ||
3 | * | ||
4 | * DECstation PROM-based early console support. | ||
5 | * | ||
6 | * Copyright (C) 2004 Maciej W. Rozycki | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * as published by the Free Software Foundation; either version | ||
11 | * 2 of the License, or (at your option) any later version. | ||
12 | */ | ||
13 | #include <linux/console.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/kernel.h> | ||
16 | |||
17 | #include <asm/dec/prom.h> | ||
18 | |||
19 | static void __init prom_console_write(struct console *con, const char *s, | ||
20 | unsigned int c) | ||
21 | { | ||
22 | static char sfmt[] __initdata = "%%%us"; | ||
23 | char fmt[13]; | ||
24 | |||
25 | snprintf(fmt, sizeof(fmt), sfmt, c); | ||
26 | prom_printf(fmt, s); | ||
27 | } | ||
28 | |||
29 | static struct console promcons __initdata = { | ||
30 | .name = "prom", | ||
31 | .write = prom_console_write, | ||
32 | .flags = CON_PRINTBUFFER, | ||
33 | .index = -1, | ||
34 | }; | ||
35 | |||
36 | static int promcons_output __initdata = 0; | ||
37 | |||
38 | void __init register_prom_console(void) | ||
39 | { | ||
40 | if (!promcons_output) { | ||
41 | promcons_output = 1; | ||
42 | register_console(&promcons); | ||
43 | } | ||
44 | } | ||
45 | |||
46 | void __init unregister_prom_console(void) | ||
47 | { | ||
48 | if (promcons_output) { | ||
49 | unregister_console(&promcons); | ||
50 | promcons_output = 0; | ||
51 | } | ||
52 | } | ||
53 | |||
54 | void disable_early_printk(void) | ||
55 | __attribute__((alias("unregister_prom_console"))); | ||