<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/input/mouse/alps.c, branch v4.14.217</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.217</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.217'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2019-07-31T05:28:36+00:00</updated>
<entry>
<title>Input: alps - fix a mismatch between a condition check and its comment</title>
<updated>2019-07-31T05:28:36+00:00</updated>
<author>
<name>Hui Wang</name>
<email>hui.wang@canonical.com</email>
</author>
<published>2019-07-19T09:38:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5ab8c351fc39e1ab48ef716829c5483553ec1aec'/>
<id>urn:sha1:5ab8c351fc39e1ab48ef716829c5483553ec1aec</id>
<content type='text'>
commit 771a081e44a9baa1991ef011cc453ef425591740 upstream.

In the function alps_is_cs19_trackpoint(), we check if the param[1] is
in the 0x20~0x2f range, but the code we wrote for this checking is not
correct:
(param[1] &amp; 0x20) does not mean param[1] is in the range of 0x20~0x2f,
it also means the param[1] is in the range of 0x30~0x3f, 0x60~0x6f...

Now fix it with a new condition checking ((param[1] &amp; 0xf0) == 0x20).

Fixes: 7e4935ccc323 ("Input: alps - don't handle ALPS cs19 trackpoint-only device")
Cc: stable@vger.kernel.org
Signed-off-by: Hui Wang &lt;hui.wang@canonical.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 - don't handle ALPS cs19 trackpoint-only device</title>
<updated>2019-07-31T05:28:36+00:00</updated>
<author>
<name>Hui Wang</name>
<email>hui.wang@canonical.com</email>
</author>
<published>2019-07-15T17:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=26d443944681e598afc47ddc83a9c69ebd94a65e'/>
<id>urn:sha1:26d443944681e598afc47ddc83a9c69ebd94a65e</id>
<content type='text'>
commit 7e4935ccc3236751e5fe4bd6846f86e46bb2e427 upstream.

On a latest Lenovo laptop, the trackpoint and 3 buttons below it
don't work at all, when we move the trackpoint or press those 3
buttons, the kernel will print out:
"Rejected trackstick packet from non DualPoint device"

This device is identified as an alps touchpad but the packet has
trackpoint format, so the alps.c drops the packet and prints out
the message above.

According to XiaoXiao's explanation, this device is named cs19 and
is trackpoint-only device, its firmware is only for trackpoint, it
is independent of touchpad and is a device completely different from
DualPoint ones.

To drive this device with mininal changes to the existing driver, we
just let the alps driver not handle this device, then the trackpoint.c
will be the driver of this device if the trackpoint driver is enabled.
(if not, this device will fallback to a bare PS/2 device)

With the trackpoint.c, this trackpoint and 3 buttons all work well,
they have all features that the trackpoint should have, like
scrolling-screen, drag-and-drop and frame-selection.

Signed-off-by: XiaoXiao Liu &lt;sliuuxiaonxiao@gmail.com&gt;
Signed-off-by: Hui Wang &lt;hui.wang@canonical.com&gt;
Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&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 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>
</feed>
