Fix LED's for input subsystem keyboards
PATCH 1/1 Fix LED's for input subsystem keyboards
This patch propagates the current LED's to every new keyboard device that is attached through the input subsystem.
drivers/input/keybdev.c +10 -2
@@ -154,16 +154,18 @@static struct input_handler keybdev_handler; +static unsigned int ledstate =0xff ; +void keybdev_ledfunc (unsigned int led) {struct input_handle *handle; -for (handle = keybdev_handler.handle; handle; handle = handle->hnext) { + ledstate = led; +for (handle = keybdev_handler.handle; handle; handle = handle->hnext) {input_event (handle->dev,EV_LED ,LED_SCROLLL , !!(led &0x01 ));input_event (handle->dev,EV_LED ,LED_NUML , !!(led &0x02 ));input_event (handle->dev,EV_LED ,LED_CAPSL , !!(led &0x04 )); - } }
@@ -204,6 +206,12 @@// printk(KERN_INFO "keybdev.c: Adding keyboard: input%d\n", dev->number); kbd_refresh_leds (); +if (ledstate !=0xff ) { +input_event (dev,EV_LED ,LED_SCROLLL , !!(ledstate &0x01 )); +input_event (dev,EV_LED ,LED_NUML , !!(ledstate &0x02 )); +input_event (dev,EV_LED ,LED_CAPSL , !!(ledstate &0x04 )); + } +return handle; }