forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.0 KiB
58 lines
1.0 KiB
// SPDX-License-Identifier: GPL-2.0 |
|
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
|
|
|
#include <linux/kernel.h> |
|
#include <linux/console.h> |
|
#include <linux/errno.h> |
|
#include <linux/string.h> |
|
|
|
#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; |
|
}
|
|
|