<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/input/mouse/alps.c, branch v4.14.45</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.45</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.45'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2018-04-08T12:26:32+00:00</updated>
<entry>
<title>Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370</title>
<updated>2018-04-08T12:26:32+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=ac72f0080c1a6bf28b21ca1b43093d61acd14a57'/>
<id>urn:sha1:ac72f0080c1a6bf28b21ca1b43093d61acd14a57</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:58:15+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=e86e5430b3b1be12e2287d9d7b931c58ba7d175c'/>
<id>urn:sha1:e86e5430b3b1be12e2287d9d7b931c58ba7d175c</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-24T22:53:46+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=4a646580f793d19717f7e034c8d473b509c27d49'/>
<id>urn:sha1:4a646580f793d19717f7e034c8d473b509c27d49</id>
<content type='text'>
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;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Merge tag 'v4.11-rc5' into next</title>
<updated>2017-04-03T19:01:20+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2017-04-03T19:01:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=03b22057e8ed2d1df416c9ae8e6e247e0b87ecc8'/>
<id>urn:sha1:03b22057e8ed2d1df416c9ae8e6e247e0b87ecc8</id>
<content type='text'>
Sync up with mainline to bring in changes to input subsystem merged
through other trees.
</content>
</entry>
<entry>
<title>Input: ALPS - fix trackstick button handling on V8 devices</title>
<updated>2017-03-17T21:25:04+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=47e6fb4212d09f325c0847d05985dd3d71553095'/>
<id>urn:sha1:47e6fb4212d09f325c0847d05985dd3d71553095</id>
<content type='text'>
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;
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: ALPS - fix V8+ protocol handling (73 03 28)</title>
<updated>2017-03-17T21:25:03+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=e7348396c6d51b57c95c6646c390cd078e038e19'/>
<id>urn:sha1:e7348396c6d51b57c95c6646c390cd078e038e19</id>
<content type='text'>
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;
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: alps - cleanup alps_model_data</title>
<updated>2017-03-07T17:49:30+00:00</updated>
<author>
<name>Pali Rohár</name>
<email>pali.rohar@gmail.com</email>
</author>
<published>2017-03-07T17:43:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a3cbfd56ff909393e2d59236d94205ae17dfc5d5'/>
<id>urn:sha1:a3cbfd56ff909393e2d59236d94205ae17dfc5d5</id>
<content type='text'>
Sort all devices in alps_model_data by signature and remove
command_mode_resp which is not used anymore.

Signed-off-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: alps - warn about unsupported ALPS V9 touchpad</title>
<updated>2017-03-07T17:49:29+00:00</updated>
<author>
<name>Pali Rohár</name>
<email>pali.rohar@gmail.com</email>
</author>
<published>2017-03-07T17:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c9815232c3cca58bb2b664f37b681841981ed4a9'/>
<id>urn:sha1:c9815232c3cca58bb2b664f37b681841981ed4a9</id>
<content type='text'>
Support for devices with ALPS_PROTO_V9 is not implemented yet but we can
detect these alps touchpads and warn users about it.

Signed-off-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: alps - move ALPS_PROTO_V4 out of alps_model_data table</title>
<updated>2017-03-07T17:49:28+00:00</updated>
<author>
<name>Pali Rohár</name>
<email>pali.rohar@gmail.com</email>
</author>
<published>2017-03-07T17:41:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=09c398bc01f507e31b9c1325a10e231d271fea00'/>
<id>urn:sha1:09c398bc01f507e31b9c1325a10e231d271fea00</id>
<content type='text'>
Like for other protocols create alps_v4_protocol_data and use it in
alps_identify() function.

Signed-off-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</content>
</entry>
<entry>
<title>Input: mouse - use local variables consistently</title>
<updated>2017-01-22T07:52:22+00:00</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2017-01-22T07:44:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ad56814fccfba3fe3613fa4d9accff3816786f3c'/>
<id>urn:sha1:ad56814fccfba3fe3613fa4d9accff3816786f3c</id>
<content type='text'>
If a function declares a variable to access a structure element,
use it consistently.

Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
</content>
</entry>
</feed>
