]> Git Repo - J-linux.git/blob - arch/s390/kernel/early_printk.c
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / arch / s390 / kernel / early_printk.c
1 // SPDX-License-Identifier: GPL-2.0
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/setup.h>
10 #include <asm/sclp.h>
11
12 static void sclp_early_write(struct console *con, const char *s, unsigned int len)
13 {
14         __sclp_early_printk(s, len);
15 }
16
17 static struct console sclp_early_console = {
18         .name  = "earlysclp",
19         .write = sclp_early_write,
20         .flags = CON_PRINTBUFFER | CON_BOOT,
21         .index = -1,
22 };
23
24 void __init register_early_console(void)
25 {
26         if (early_console)
27                 return;
28         if (!sclp.has_linemode && !sclp.has_vt220)
29                 return;
30         early_console = &sclp_early_console;
31         register_console(early_console);
32 }
33
34 static int __init setup_early_printk(char *buf)
35 {
36         if (early_console)
37                 return 0;
38         /* Accept only "earlyprintk" and "earlyprintk=sclp" */
39         if (buf && !str_has_prefix(buf, "sclp"))
40                 return 0;
41         register_early_console();
42         return 0;
43 }
44 early_param("earlyprintk", setup_early_printk);
This page took 0.027548 seconds and 4 git commands to generate.