Input: ALPS - fix two-finger scroll breakage in right side on ALPS touchpad
authorMasaki Ota <masaki.ota@jp.alps.com>
Thu, 24 Aug 2017 22:44:36 +0000 (15:44 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 24 Aug 2017 22:53:46 +0000 (15:53 -0700)
commit4a646580f793d19717f7e034c8d473b509c27d49
tree4f13471d5b2be6d0d84de45777833a95ddacbb3d
parentd912366a59c5384df436fd007667d6e574128b44
Input: ALPS - fix two-finger scroll breakage in right side on ALPS touchpad

Fixed the issue that two finger scroll does not work correctly
on V8 protocol. The cause is that V8 protocol X-coordinate decode
is wrong at SS4 PLUS device. I added SS4 PLUS X decode definition.

Mote notes:
the problem manifests itself by the commit e7348396c6d5 ("Input: ALPS
- fix V8+ protocol handling (73 03 28)"), where a fix for the V8+
protocol was applied.  Although the culprit must have been present
beforehand, the two-finger scroll worked casually even with the
wrongly reported values by some reason.  It got broken by the commit
above just because it changed x_max value, and this made libinput
correctly figuring the MT events.  Since the X coord is reported as
falsely doubled, the events on the right-half side go outside the
boundary, thus they are no longer handled.  This resulted as a broken
two-finger scroll.

One finger event is decoded differently, and it didn't suffer from
this problem.  The problem was only about MT events. --tiwai

Fixes: e7348396c6d5 ("Input: ALPS - fix V8+ protocol handling (73 03 28)")
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Tested-by: Takashi Iwai <tiwai@suse.de>
Tested-by: Paul Donohue <linux-kernel@PaulSD.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/alps.c
drivers/input/mouse/alps.h