--- zzzz-none-000/linux-2.4.17/drivers/input/keybdev.c 2001-10-11 16:14:32.000000000 +0000 +++ sangam-fb-401/linux-2.4.17/drivers/input/keybdev.c 2005-04-05 07:07:46.000000000 +0000 @@ -1,5 +1,5 @@ /* - * $Id: keybdev.c,v 1.3 2000/05/28 17:31:36 vojtech Exp $ + * $Id: keybdev.c,v 1.1.1.1 2003/06/23 22:18:27 jharrell Exp $ * * Copyright (c) 1999-2000 Vojtech Pavlik * @@ -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)); - } } @@ -202,6 +204,12 @@ // printk(KERN_INFO "keybdev.c: Adding keyboard: input%d\n", dev->number); + 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; }