// SPDX-License-Identifier: GPL-2.0 /* * Copyright IBM Corp. 2017 */ #include #include #include #include #include static void sclp_early_write(struct console *con, const char *s, unsigned int len) { __sclp_early_printk(s, len); } static struct console sclp_early_console = { .name = "earlysclp", .write = sclp_early_write, .flags = CON_PRINTBUFFER | CON_BOOT, .index = -1, }; void __init register_early_console(void) { if (early_console) return; if (!sclp.has_linemode && !sclp.has_vt220) return; early_console = &sclp_early_console; register_console(early_console); } static int __init setup_early_printk(char *buf) { if (early_console) return 0; /* Accept only "earlyprintk" and "earlyprintk=sclp" */ if (buf && !str_has_prefix(buf, "sclp")) return 0; register_early_console(); return 0; } early_param("earlyprintk", setup_early_printk);