aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/input.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor@insightbb.com>2006-09-10 21:56:06 -0400
committerDmitry Torokhov <dtor@insightbb.com>2006-09-10 21:56:06 -0400
commit6d2750c167d47a97936cf4415165205f945c08f8 (patch)
tree9f07d5e0fe6c3145f250b36e789e367cdca73e75 /drivers/input/input.c
parente38de678f6b19be3e46a678ec4deeaa7fa0fc140 (diff)
Input: send key up events at disconnect
Emit key up events for all pressed keys/buttons when disconnecting an input device. Cures "stuck" enter key effect when unloading keyboard module. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/input.c')
-rw-r--r--drivers/input/input.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 1fc0517e9428..1c71dd6fe5cd 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1014,9 +1014,12 @@ EXPORT_SYMBOL(input_register_device);
1014void input_unregister_device(struct input_dev *dev) 1014void input_unregister_device(struct input_dev *dev)
1015{ 1015{
1016 struct list_head *node, *next; 1016 struct list_head *node, *next;
1017 int code;
1017 1018
1018 if (!dev) 1019 for (code = 0; code <= KEY_MAX; code++)
1019 return; 1020 if (test_bit(code, dev->key))
1021 input_report_key(dev, code, 0);
1022 input_sync(dev);
1020 1023
1021 del_timer_sync(&dev->timer); 1024 del_timer_sync(&dev->timer);
1022 1025