braille.c (1058B)
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}