From: Dmitry Torokhov <dtor@insightbb.com>
Date: Mon, 11 Sep 2006 01:56:06 +0000 (-0400)
Subject: Input: send key up events at disconnect
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6d2750c167d47a97936cf4415165205f945c08f8;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git

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>
---

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);
 void input_unregister_device(struct input_dev *dev)
 {
 	struct list_head *node, *next;
+	int code;
 
-	if (!dev)
-		return;
+	for (code = 0; code <= KEY_MAX; code++)
+		if (test_bit(code, dev->key))
+			input_report_key(dev, code, 0);
+	input_sync(dev);
 
 	del_timer_sync(&dev->timer);