From ace9429bb58fd418f0c81d4c2835699bddf6bde6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:27:49 +0200 Subject: Adding upstream version 6.6.15. Signed-off-by: Daniel Baumann --- kernel/printk/braille.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 kernel/printk/braille.c (limited to 'kernel/printk/braille.c') diff --git a/kernel/printk/braille.c b/kernel/printk/braille.c new file mode 100644 index 0000000000..17a9591e54 --- /dev/null +++ b/kernel/printk/braille.c @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: GPL-2.0 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include + +#include "console_cmdline.h" +#include "braille.h" + +int _braille_console_setup(char **str, char **brl_options) +{ + size_t len; + + len = str_has_prefix(*str, "brl,"); + if (len) { + *brl_options = ""; + *str += len; + return 0; + } + + len = str_has_prefix(*str, "brl="); + if (len) { + *brl_options = *str + len; + *str = strchr(*brl_options, ','); + if (!*str) { + pr_err("need port name after brl=\n"); + return -EINVAL; + } + *((*str)++) = 0; + } + + return 0; +} + +int +_braille_register_console(struct console *console, struct console_cmdline *c) +{ + int rtn = 0; + + if (c->brl_options) { + console->flags |= CON_BRL; + rtn = braille_register_console(console, c->index, c->options, + c->brl_options); + } + + return rtn; +} + +int +_braille_unregister_console(struct console *console) +{ + if (console->flags & CON_BRL) + return braille_unregister_console(console); + + return 0; +} -- cgit v1.2.3