INPUT: keyboard_tasklet - don't touch LED's of already grabed device

From: Aivils Stoss
Date: Tue Sep 06 2005 - 02:34:04 EST


Hi, Vojtech!

Recent kernels allow exclusive usage of input device when
input device is grabed. keyboard_tasklet does not check
device state and switch LED's of all keyboards. However
grabed device may be use another LED steering code.

This patch forbid keyboard_tasklet switch LED's of
grabed devices.

Aivils Stoss

--- linux-2.6.13/drivers/char/keyboard.c 2005-08-29 02:41:01.000000000 +0300
+++ linux-2.6.13/drivers/char/keyboard.c~ 2005-09-06 10:09:35.000000000 +0300
@@ -895,16 +895,18 @@ static inline unsigned char getleds(void

static void kbd_bh(unsigned long dummy)
{
struct list_head * node;
unsigned char leds = getleds();

if (leds != ledstate) {
list_for_each(node,&kbd_handler.h_list) {
+ if (handle->dev->grab)
+ continue;
struct input_handle * handle = to_handle_h(node);
input_event(handle->dev, EV_LED, LED_SCROLLL, !!(leds & 0x01));
input_event(handle->dev, EV_LED, LED_NUML, !!(leds & 0x02));
input_event(handle->dev, EV_LED, LED_CAPSL, !!(leds & 0x04));
input_sync(handle->dev);
}
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/