]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 May 2022 12:15:58 +0000 (14:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 May 2022 12:15:58 +0000 (14:15 +0200)
added patches:
input-goodix-fix-spurious-key-release-events.patch

queue-5.4/input-goodix-fix-spurious-key-release-events.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/input-goodix-fix-spurious-key-release-events.patch b/queue-5.4/input-goodix-fix-spurious-key-release-events.patch
new file mode 100644 (file)
index 0000000..5ece804
--- /dev/null
@@ -0,0 +1,39 @@
+From 24ef83f6e31d20fc121a7cd732b04b498475fca3 Mon Sep 17 00:00:00 2001
+From: Dmitry Mastykin <dmastykin@astralinux.ru>
+Date: Tue, 24 Mar 2020 11:38:28 -0700
+Subject: Input: goodix - fix spurious key release events
+
+From: Dmitry Mastykin <dmastykin@astralinux.ru>
+
+commit 24ef83f6e31d20fc121a7cd732b04b498475fca3 upstream.
+
+The goodix panel sends spurious interrupts after a 'finger up' event,
+which always cause a timeout.
+We were exiting the interrupt handler by reporting touch_num == 0, but
+this was still processed as valid and caused the code to use the
+uninitialised point_data, creating spurious key release events.
+
+Report an error from the interrupt handler so as to avoid processing
+invalid point_data further.
+
+Signed-off-by: Dmitry Mastykin <dmastykin@astralinux.ru>
+Reviewed-by: Bastien Nocera <hadess@hadess.net>
+Link: https://lore.kernel.org/r/20200316075302.3759-2-dmastykin@astralinux.ru
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Cc: Fabio Estevam <festevam@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/input/touchscreen/goodix.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/input/touchscreen/goodix.c
++++ b/drivers/input/touchscreen/goodix.c
+@@ -335,7 +335,7 @@ static int goodix_ts_read_input_report(s
+        * The Goodix panel will send spurious interrupts after a
+        * 'finger up' event, which will always cause a timeout.
+        */
+-      return 0;
++      return -ENOMSG;
+ }
+ static void goodix_ts_report_touch_8b(struct goodix_ts_data *ts, u8 *coor_data)
index ee009fa0f092ed049cebca2517f738e5a03d3cdf..90f5a5c8d3570587841105d7b4e53f601d563571 100644 (file)
@@ -1,3 +1,4 @@
 lockdown-also-lock-down-previous-kgdb-use.patch
 x86-pci-xen-disable-pci-msi-masking-for-xen_hvm-guests.patch
 staging-rtl8723bs-prevent-ssid-overflow-in-rtw_wx_set_scan.patch
+input-goodix-fix-spurious-key-release-events.patch