diff options
Diffstat (limited to 'kernel/printk/braille.c')
| -rw-r--r-- | kernel/printk/braille.c | 49 | 
1 files changed, 49 insertions, 0 deletions
| diff --git a/kernel/printk/braille.c b/kernel/printk/braille.c new file mode 100644 index 00000000000..276762f3a46 --- /dev/null +++ b/kernel/printk/braille.c @@ -0,0 +1,49 @@ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include <linux/kernel.h> +#include <linux/console.h> +#include <linux/string.h> + +#include "console_cmdline.h" +#include "braille.h" + +char *_braille_console_setup(char **str, char **brl_options) +{ +	if (!memcmp(*str, "brl,", 4)) { +		*brl_options = ""; +		*str += 4; +	} else if (!memcmp(str, "brl=", 4)) { +		*brl_options = *str + 4; +		*str = strchr(*brl_options, ','); +		if (!*str) +			pr_err("need port name after brl=\n"); +		else +			*((*str)++) = 0; +	} else +		return NULL; + +	return *str; +} + +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; +} | 
