diff options
author | Dmitry Torokhov <dtor@insightbb.com> | 2006-09-10 21:56:06 -0400 |
---|---|---|
committer | Dmitry Torokhov <dtor@insightbb.com> | 2006-09-10 21:56:06 -0400 |
commit | 6d2750c167d47a97936cf4415165205f945c08f8 (patch) | |
tree | 9f07d5e0fe6c3145f250b36e789e367cdca73e75 /drivers/input/input.c | |
parent | e38de678f6b19be3e46a678ec4deeaa7fa0fc140 (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.c | 7 |
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); | |||
1014 | void input_unregister_device(struct input_dev *dev) | 1014 | void 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 | ||