<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/input/mouse/alps.c, branch v4.9.113</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.9.113</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.9.113'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2018-04-08T10:12:58+00:00</updated>
<entry>
<title>Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370</title>
<updated>2018-04-08T10:12:58+00:00</updated>
<author>
<name>Masaki Ota</name>
<email>masaki.ota@jp.alps.com</email>
</author>
<published>2018-01-29T22:36:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=61981aa00364a3b52c217a3150038ecebc5abdec'/>
<id>urn:sha1:61981aa00364a3b52c217a3150038ecebc5abdec</id>
<content type='text'>
commit 567b9b549cfa1cbc202762ae97b5385c29ade1e3 upstream.

The primary interface for the touchpad device in Thinkpad L570 is SMBus,
so ALPS overlooked PS2 interface Firmware setting of TrackStick, and
shipped with TrackStick otp bit is disabled.

The address 0xD7 contains device number information, so we can identify
the device by checking this value, but to access it we need to enable
Command mode, and then re-enable the device. Devices shipped in Thinkpad
L570 report either 0x0C or 0x1D as device numbers, if we see them we assume
that the devices are DualPoints.

The same issue exists on Dell Latitude 7370.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196929
Fixes: 646580f793 ("Input: ALPS - fix multi-touch decoding on SS4 plus touchpads")
Signed-off-by: Masaki Ota &lt;masaki.ota@jp.alps.com&gt;
Tested-by: Aaron Ma &lt;aaron.ma@canonical.com&gt;
Tested-by: Jonathan Liu &lt;net147@gmail.com&gt;
Tested-by: Jaak Ristioja &lt;jaak@ristioja.ee&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: ALPS - fix multi-touch decoding on SS4 plus touchpads</title>
<updated>2018-01-23T18:57:07+00:00</updated>
<author>
<name>Nir Perry</name>
<email>nirperry@gmail.com</email>
</author>
<published>2018-01-12T07:43:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=607b86e173522b806d6721a4dba0b291178d5e4c'/>
<id>urn:sha1:607b86e173522b806d6721a4dba0b291178d5e4c</id>
<content type='text'>
commit 4d94e776bd29670f01befa27e12df784fa05fa2e upstream.

The fix for handling two-finger scroll (i4a646580f793 - "Input: ALPS -
fix two-finger scroll breakage in right side on ALPS touchpad")
introduced a minor "typo" that broke decoding of multi-touch events are
decoded on some ALPS touchpads.  For example, tapping with three-fingers
can no longer be used to emulate middle-mouse-button (the kernel doesn't
recognize this as the proper event, and doesn't report it correctly to
userspace).  This affects touchpads that use SS4 "plus" protocol
variant, like those found on Dell E7270 &amp; E7470 laptops (tested on
E7270).

First, probably the code in alps_decode_ss4_v2() for case
SS4_PACKET_ID_MULTI used inconsistent indices to "f-&gt;mt[]". You can see
0 &amp; 1 are used for the "if" part but 2 &amp; 3 are used for the "else" part.

Second, in the previous patch, new macros were introduced to decode X
coordinates specific to the SS4 "plus" variant, but the macro to
define the maximum X value wasn't changed accordingly. The macros to
decode X values for "plus" variant are effectively shifted right by 1
bit, but the max wasn't shifted too. This causes the driver to
incorrectly handle "no data" cases, which also interfered with how
multi-touch was handled.

Fixes: 4a646580f793 ("Input: ALPS - fix two-finger scroll breakage...")
Signed-off-by: Nir Perry &lt;nirperry@gmail.com&gt;
Reviewed-by: Masaki Ota &lt;masaki.ota@jp.alps.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: ALPS - fix two-finger scroll breakage in right side on ALPS touchpad</title>
<updated>2017-08-30T08:21:44+00:00</updated>
<author>
<name>Masaki Ota</name>
<email>masaki.ota@jp.alps.com</email>
</author>
<published>2017-08-24T22:44:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=963068b1ff1c640ea54026c918d6616079e22bed'/>
<id>urn:sha1:963068b1ff1c640ea54026c918d6616079e22bed</id>
<content type='text'>
commit 4a646580f793d19717f7e034c8d473b509c27d49 upstream.

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 &lt;masaki.ota@jp.alps.com&gt;
Tested-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Tested-by: Paul Donohue &lt;linux-kernel@PaulSD.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: ALPS - fix trackstick button handling on V8 devices</title>
<updated>2017-03-30T07:41:22+00:00</updated>
<author>
<name>Masaki Ota</name>
<email>masaki.ota@jp.alps.com</email>
</author>
<published>2017-03-17T21:19:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4ccef6bd3a0212f0172428afe7ad4aa3b3601dbf'/>
<id>urn:sha1:4ccef6bd3a0212f0172428afe7ad4aa3b3601dbf</id>
<content type='text'>
commit 47e6fb4212d09f325c0847d05985dd3d71553095 upstream.

Alps stick devices always have physical buttons, so we should not check
ALPS_BUTTONPAD flag to decide whether we should report them.

Fixes: 4777ac220c43 ("Input: ALPS - add touchstick support for SS5 hardware")
Signed-off-by: Masaki Ota &lt;masaki.ota@jp.alps.com&gt;
Acked-by: Pali Rohar &lt;pali.rohar@gmail.com&gt;
Tested-by: Paul Donohue &lt;linux-kernel@PaulSD.com&gt;
Tested-by: Nick Fletcher &lt;nick.m.fletcher@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: ALPS - fix V8+ protocol handling (73 03 28)</title>
<updated>2017-03-30T07:41:22+00:00</updated>
<author>
<name>Masaki Ota</name>
<email>masaki.ota@jp.alps.com</email>
</author>
<published>2017-03-17T21:10:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=81643d000315229e5ff13cff943a69da9ab92a80'/>
<id>urn:sha1:81643d000315229e5ff13cff943a69da9ab92a80</id>
<content type='text'>
commit e7348396c6d51b57c95c6646c390cd078e038e19 upstream.

Devices identified as E7="73 03 28" use slightly modified version of V8
protocol, with lower count per electrode, different offsets, and different
feature bits in OTP data.

Fixes: aeaa881f9b17 ("Input: ALPS - set DualPoint flag for 74 03 28 devices")
Signed-off-by: Masaki Ota &lt;masaki.ota@jp.alps.com&gt;
Acked-by: Pali Rohar &lt;pali.rohar@gmail.com&gt;
Tested-by: Paul Donohue &lt;linux-kernel@PaulSD.com&gt;
Tested-by: Nick Fletcher &lt;nick.m.fletcher@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: ALPS - fix TrackStick support for SS5 hardware</title>
<updated>2017-01-26T07:24:41+00:00</updated>
<author>
<name>Paul Donohue</name>
<email>linux-kernel@PaulSD.com</email>
</author>
<published>2016-11-29T04:11:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6d9b544d88a4a697211062fc2ab2eb0e28c01b13'/>
<id>urn:sha1:6d9b544d88a4a697211062fc2ab2eb0e28c01b13</id>
<content type='text'>
commit 864db9295b06837d11a260e5dacf99a3fdf6bce2 upstream.

The current Alps SS5 (SS4 v2) code generates bogus TouchPad events when
TrackStick packets are processed.

This causes the xorg synaptics driver to print
"unable to find touch point 0" and
"BUG: triggered 'if (priv-&gt;num_active_touches &gt; priv-&gt;num_slots)'"
messages.  It also causes unexpected TouchPad button release and re-click
event sequences if the TrackStick is moved while holding a TouchPad
button.

This commit corrects the problem by adjusting alps_process_packet_ss4_v2()
so that it only sends TrackStick reports when processing TrackStick
packets.

Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Signed-off-by: Paul Donohue &lt;linux-kernel@PaulSD.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: ALPS - set DualPoint flag for 74 03 28 devices</title>
<updated>2016-10-04T18:47:01+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2016-10-04T18:43:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=aeaa881f9b17823028b464893b89c42db797b717'/>
<id>urn:sha1:aeaa881f9b17823028b464893b89c42db797b717</id>
<content type='text'>
Here we introduce logic in alps_identify to set the ALPS_DUALPOINT flag
for touchpad hardware responding to E7 report with 73 03 28, as is found
in the Dell Latitude E7470.

Tested-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Ben Gamari &lt;ben@smart-cactus.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: ALPS - allow touchsticks to report pressure</title>
<updated>2016-10-04T18:46:54+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2016-10-04T18:41:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7ad8a1067dfc3bf74ad2daef013ea4f3df1841a7'/>
<id>urn:sha1:7ad8a1067dfc3bf74ad2daef013ea4f3df1841a7</id>
<content type='text'>
The SS5 hardware can report this.

Tested-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Ben Gamari &lt;ben@smart-cactus.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: ALPS - handle 0-pressure 1F events</title>
<updated>2016-10-04T18:46:51+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2016-10-04T18:40:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a831776323e7c532ef9c88d0d62512ae15d78415'/>
<id>urn:sha1:a831776323e7c532ef9c88d0d62512ae15d78415</id>
<content type='text'>
While a button is held SS5 hardware will give us single-finger packets
with x, y, and pressure equal to zero. This causes annoying jumps in
pointer position if a touch is released while the button is held. Handle
this by claiming zero contacts to ensure that no position events are
provided to the user.

Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Tested-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Ben Gamari &lt;ben@smart-cactus.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: ALPS - add touchstick support for SS5 hardware</title>
<updated>2016-10-04T18:46:41+00:00</updated>
<author>
<name>Ben Gamari</name>
<email>ben@smart-cactus.org</email>
</author>
<published>2016-10-04T18:33:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4777ac220c430173e297237b896932ed5fd8aaf3'/>
<id>urn:sha1:4777ac220c430173e297237b896932ed5fd8aaf3</id>
<content type='text'>
Add touchstick support for the so-called SS5 hardware, which uses a
variant of the SS4 protocol.

Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Tested-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Ben Gamari &lt;ben@smart-cactus.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
</feed>
