2017-09-28 20:07:34

by Andrew Duggan

[permalink] [raw]
Subject: [PATCH] Input: synaptics - Disable kernel tracking on SMBus devices

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 <[email protected]>
Tested-by: Kamil Páral <[email protected]>
---
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 = {
--
2.7.4


2017-09-29 08:08:53

by Benjamin Tissoires

[permalink] [raw]
Subject: Re: [PATCH] Input: synaptics - Disable kernel tracking on SMBus devices

On Sep 28 2017 or thereabouts, Andrew Duggan wrote:
> 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 <[email protected]>
> Tested-by: Kamil Páral <[email protected]>

Acked-by: Benjamin Tissoires <[email protected]>

Thanks Andrew for the patch!

Cheers,
Benjamin

> ---
> 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 = {
> --
> 2.7.4
>