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 12 int _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 37 int 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 51 int 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