--- /dev/null
+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
+@@ -97,6 +97,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);
+ }