diff options
Diffstat (limited to 'drivers/accessibility')
| -rw-r--r-- | drivers/accessibility/braille/braille_console.c | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/accessibility/braille/braille_console.c b/drivers/accessibility/braille/braille_console.c index cb423f5aef2..dc34a5b8bce 100644 --- a/drivers/accessibility/braille/braille_console.c +++ b/drivers/accessibility/braille/braille_console.c @@ -44,7 +44,7 @@ MODULE_LICENSE("GPL");   */  /* Emit various sounds */ -static int sound; +static bool sound;  module_param(sound, bool, 0);  MODULE_PARM_DESC(sound, "emit sounds"); @@ -244,16 +244,13 @@ static int keyboard_notifier_call(struct notifier_block *blk,  			switch (val) {  			case KVAL(K_CAPS): -				on_off = vc_kbd_led(kbd_table + fg_console, -						VC_CAPSLOCK); +				on_off = vt_get_leds(fg_console, VC_CAPSLOCK);  				break;  			case KVAL(K_NUM): -				on_off = vc_kbd_led(kbd_table + fg_console, -						VC_NUMLOCK); +				on_off = vt_get_leds(fg_console, VC_NUMLOCK);  				break;  			case KVAL(K_HOLD): -				on_off = vc_kbd_led(kbd_table + fg_console, -						VC_SCROLLOCK); +				on_off = vt_get_leds(fg_console, VC_SCROLLOCK);  				break;  			}  			if (on_off == 1) @@ -362,6 +359,9 @@ int braille_register_console(struct console *console, int index,  		char *console_options, char *braille_options)  {  	int ret; + +	if (!(console->flags & CON_BRL)) +		return 0;  	if (!console_options)  		/* Only support VisioBraille for now */  		console_options = "57600o8"; @@ -377,15 +377,17 @@ int braille_register_console(struct console *console, int index,  	braille_co = console;  	register_keyboard_notifier(&keyboard_notifier_block);  	register_vt_notifier(&vt_notifier_block); -	return 0; +	return 1;  }  int braille_unregister_console(struct console *console)  {  	if (braille_co != console)  		return -EINVAL; +	if (!(console->flags & CON_BRL)) +		return 0;  	unregister_keyboard_notifier(&keyboard_notifier_block);  	unregister_vt_notifier(&vt_notifier_block);  	braille_co = NULL; -	return 0; +	return 1;  }  | 
