linux/kernel/printk/braille.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
   3
   4#include <linux/kernel.h>
   5#include <linux/console.h>
   6#include <linux/errno.h>
   7#include <linux/string.h>
   8
   9#include "console_cmdline.h"
  10#include "braille.h"
  11
  12int _braille_console_setup(char **str, char **brl_options)
  13{
  14        size_t len;
  15
  16        len = str_has_prefix(*str, "brl,");
  17        if (len) {
  18                *brl_options = "";
  19                *str += len;
  20                return 0;
  21        }
  22
  23        len = str_has_prefix(*str, "brl=");
  24        if (len) {
  25                *brl_options = *str + len;
  26                *str = strchr(*brl_options, ',');
  27                if (!*str) {
  28                        pr_err("need port name after brl=\n");
  29                        return -EINVAL;
  30                }
  31                *((*str)++) = 0;
  32        }
  33
  34        return 0;
  35}
  36
  37int
  38_braille_register_console(struct console *console, struct console_cmdline *c)
  39{
  40        int rtn = 0;
  41
  42        if (c->brl_options) {
  43                console->flags |= CON_BRL;
  44                rtn = braille_register_console(console, c->index, c->options,
  45                                               c->brl_options);
  46        }
  47
  48        return rtn;
  49}
  50
  51int
  52_braille_unregister_console(struct console *console)
  53{
  54        if (console->flags & CON_BRL)
  55                return braille_unregister_console(console);
  56
  57        return 0;
  58}
  59