]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Dec 2017 17:55:15 +0000 (18:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Dec 2017 17:55:15 +0000 (18:55 +0100)
added patches:
platform-x86-asus-wireless-send-an-ev_syn-syn_report-between-state-changes.patch

queue-4.14/platform-x86-asus-wireless-send-an-ev_syn-syn_report-between-state-changes.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/platform-x86-asus-wireless-send-an-ev_syn-syn_report-between-state-changes.patch b/queue-4.14/platform-x86-asus-wireless-send-an-ev_syn-syn_report-between-state-changes.patch
new file mode 100644 (file)
index 0000000..b516952
--- /dev/null
@@ -0,0 +1,37 @@
+From bff5bf9db1c9453ffd0a78abed3e2d040c092fd9 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 4 Dec 2017 10:26:17 +1000
+Subject: platform/x86: asus-wireless: send an EV_SYN/SYN_REPORT between state changes
+
+From: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit bff5bf9db1c9453ffd0a78abed3e2d040c092fd9 upstream.
+
+Sending the switch state change twice within the same frame is invalid
+evdev protocol and only works if the client handles keys immediately as
+well. Processing events immediately is incorrect, it forces a fake
+order of events that does not exist on the device.
+
+Recent versions of libinput changed to only process the device state and
+SYN_REPORT time, so now the key event is lost.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=104041
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/asus-wireless.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/platform/x86/asus-wireless.c
++++ b/drivers/platform/x86/asus-wireless.c
+@@ -118,6 +118,7 @@ static void asus_wireless_notify(struct
+               return;
+       }
+       input_report_key(data->idev, KEY_RFKILL, 1);
++      input_sync(data->idev);
+       input_report_key(data->idev, KEY_RFKILL, 0);
+       input_sync(data->idev);
+ }
index 0bc857d9d1431d054fcc3efadef146ee94fa2036..6a3875d45f5b1c121acd11299e7313b540ce92cf 100644 (file)
@@ -156,3 +156,4 @@ thermal-drivers-hisi-fix-missing-interrupt-enablement.patch
 thermal-drivers-hisi-fix-kernel-panic-on-alarm-interrupt.patch
 thermal-drivers-hisi-simplify-the-temperature-step-computation.patch
 thermal-drivers-hisi-fix-multiple-alarm-interrupts-firing.patch
+platform-x86-asus-wireless-send-an-ev_syn-syn_report-between-state-changes.patch