linux/arch/s390/kernel/early_printk.c
<<
>>
Prefs
   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/sclp.h>
  10
  11static void sclp_early_write(struct console *con, const char *s, unsigned int len)
  12{
  13        __sclp_early_printk(s, len);
  14}
  15
  16static struct console sclp_early_console = {
  17        .name  = "earlysclp",
  18        .write = sclp_early_write,
  19        .flags = CON_PRINTBUFFER | CON_BOOT,
  20        .index = -1,
  21};
  22
  23static 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 && !str_has_prefix(buf, "sclp"))
  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}
  36early_param("earlyprintk", setup_early_printk);
  37