]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
89175cf7 HC |
2 | /* |
3 | * Copyright IBM Corp. 2017 | |
4 | */ | |
5 | ||
6 | #include <linux/console.h> | |
7 | #include <linux/kernel.h> | |
8 | #include <linux/init.h> | |
9 | #include <asm/sclp.h> | |
10 | ||
11 | static void sclp_early_write(struct console *con, const char *s, unsigned int len) | |
12 | { | |
55a5542a | 13 | __sclp_early_printk(s, len, 0); |
89175cf7 HC |
14 | } |
15 | ||
16 | static struct console sclp_early_console = { | |
17 | .name = "earlysclp", | |
18 | .write = sclp_early_write, | |
19 | .flags = CON_PRINTBUFFER | CON_BOOT, | |
20 | .index = -1, | |
21 | }; | |
22 | ||
23 | static int __init setup_early_printk(char *buf) | |
24 | { | |
25 | if (early_console) | |
26 | return 0; | |
27 | /* Accept only "earlyprintk" and "earlyprintk=sclp" */ | |
28 | if (buf && strncmp(buf, "sclp", 4)) | |
29 | return 0; | |
30 | if (!sclp.has_linemode && !sclp.has_vt220) | |
31 | return 0; | |
32 | early_console = &sclp_early_console; | |
33 | register_console(early_console); | |
34 | return 0; | |
35 | } | |
36 | early_param("earlyprintk", setup_early_printk); |