52 lines
2.1 KiB
Diff
52 lines
2.1 KiB
Diff
From patchwork Thu Sep 28 20:07:19 2017
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 8bit
|
|
Subject: Input: synaptics - Disable kernel tracking on SMBus devices
|
|
From: Andrew Duggan <aduggan@synaptics.com>
|
|
X-Patchwork-Id: 9976729
|
|
Message-Id: <1506629239-5940-1-git-send-email-aduggan@synaptics.com>
|
|
To: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
|
|
Cc: Andrew Duggan <aduggan@synaptics.com>,
|
|
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
|
|
Benjamin Tissoires <benjamin.tissoires@redhat.com>,
|
|
=?UTF-8?q?Kamil=20P=C3=A1ral?= <kparal@redhat.com>
|
|
Date: Thu, 28 Sep 2017 13:07:19 -0700
|
|
|
|
In certain situations kernel tracking seems to be getting confused
|
|
and incorrectly reporting the slot of a contact. On example is when
|
|
the user does a three finger click or tap and then places two fingers
|
|
on the touchpad in the same area. The kernel tracking code seems to
|
|
continue to think that there are three contacts on the touchpad and
|
|
incorrectly alternates the slot of one of the contacts. The result that
|
|
is the input subsystem reports a stream of button press and release
|
|
events as the reported slot changes.
|
|
|
|
Kernel tracking was originally enabled to prevent cursor jumps, but it
|
|
is unclear how much of an issue kernel jumps actually are. This patch
|
|
simply disabled kernel tracking for now.
|
|
|
|
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1482640
|
|
|
|
Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
|
|
Tested-by: Kamil Páral <kparal@redhat.com>
|
|
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
|
---
|
|
drivers/input/mouse/synaptics.c | 3 +--
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
|
|
index 5af0b7d..ee5466a 100644
|
|
--- a/drivers/input/mouse/synaptics.c
|
|
+++ b/drivers/input/mouse/synaptics.c
|
|
@@ -1709,8 +1709,7 @@ static int synaptics_create_intertouch(struct psmouse *psmouse,
|
|
.sensor_pdata = {
|
|
.sensor_type = rmi_sensor_touchpad,
|
|
.axis_align.flip_y = true,
|
|
- /* to prevent cursors jumps: */
|
|
- .kernel_tracking = true,
|
|
+ .kernel_tracking = false,
|
|
.topbuttonpad = topbuttonpad,
|
|
},
|
|
.f30_data = {
|