xref: /linux/kernel/printk/braille.c (revision bb9707077b4ee5f77bc9939b057ff8a0d410296f)
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 	} else
23 		return NULL;
24 
25 	return *str;
26 }
27 
28 int
29 _braille_register_console(struct console *console, struct console_cmdline *c)
30 {
31 	int rtn = 0;
32 
33 	if (c->brl_options) {
34 		console->flags |= CON_BRL;
35 		rtn = braille_register_console(console, c->index, c->options,
36 					       c->brl_options);
37 	}
38 
39 	return rtn;
40 }
41 
42 int
43 _braille_unregister_console(struct console *console)
44 {
45 	if (console->flags & CON_BRL)
46 		return braille_unregister_console(console);
47 
48 	return 0;
49 }
50