Merge tag 'v3.11-rc5' into perf/core
[platform/adaptation/renesas_rcar/renesas_kernel.git] / kernel / printk / braille.c
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 }