media: rc: mce_kbd decoder: fix stuck keys
authorSean Young <sean@mess.org>
Sun, 8 Apr 2018 10:36:40 +0000 (06:36 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jul 2018 09:39:22 +0000 (11:39 +0200)
commit 63039c29f7a4ce8a8bd165173840543c0098d7b0 upstream.

The MCE Remote sends a 0 scancode when keys are released. If this is not
received or decoded, then keys can get "stuck"; the keyup event is not
sent since the input_sync() is missing from the timeout handler.

Cc: stable@vger.kernel.org
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/rc/ir-mce_kbd-decoder.c

index 7c572a6436563f1380d05edf16a474d97b58441e..2a1728edb3c669cb8669fa408c346bf970a889b5 100644 (file)
@@ -130,6 +130,8 @@ static void mce_kbd_rx_timeout(unsigned long data)
 
        for (i = 0; i < MCIR2_MASK_KEYS_START; i++)
                input_report_key(mce_kbd->idev, kbd_keycodes[i], 0);
+
+       input_sync(mce_kbd->idev);
 }
 
 static enum mce_kbd_mode mce_kbd_mode(struct mce_kbd_dec *data)