xref: /linux/kernel/printk/braille.c (revision bbeddf52adc1b4207674ab88686cbbe58c24f721)
1 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
2 
3 #include <linux/kernel.h>
4 #include <linux/console.h>
5 #include <linux/string.h>
6 
7 #include "console_cmdline.h"
8 #include "braille.h"
9 
10 char *_braille_console_setup(char **str, char **brl_options)
11 {
12 	if (!memcmp(*str, "brl,", 4)) {
13 		*brl_options = "";
14 		*str += 4;
15 	} else if (!memcmp(str, "brl=", 4)) {
16 		*brl_options = *str + 4;
17 		*str = strchr(*brl_options, ',');
18 		if (!*str)
19 			pr_err("need port name after brl=\n");
20 		else
21 			*((*str)++) = 0;
22 	}
23 
24 	return *str;
25 }
26 
27 int
28 _braille_register_console(struct console *console, struct console_cmdline *c)
29 {
30 	int rtn = 0;
31 
32 	if (c->brl_options) {
33 		console->flags |= CON_BRL;
34 		rtn = braille_register_console(console, c->index, c->options,
35 					       c->brl_options);
36 	}
37 
38 	return rtn;
39 }
40 
41 int
42 _braille_unregister_console(struct console *console)
43 {
44 	if (console->flags & CON_BRL)
45 		return braille_unregister_console(console);
46 
47 	return 0;
48 }
49