| From: Sean Young <sean@mess.org> |
| Date: Sun, 8 Apr 2018 06:36:40 -0400 |
| Subject: media: rc: mce_kbd decoder: fix stuck keys |
| |
| 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. |
| |
| Signed-off-by: Sean Young <sean@mess.org> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> |
| [bwh: Backported to 3.16: s/raw->mce_kbd\.idev/mce_kbd->idev/] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/media/rc/ir-mce_kbd-decoder.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/media/rc/ir-mce_kbd-decoder.c |
| +++ b/drivers/media/rc/ir-mce_kbd-decoder.c |
| @@ -130,6 +130,8 @@ static void mce_kbd_rx_timeout(unsigned |
| |
| 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) |