Thread (11 messages) 11 messages, 4 authors, 2017-06-07

Re: Trackpoint on Thinkpad X1 Carbon (5th gen)

From: Damjan Georgievski <hidden>
Date: 2017-06-06 17:28:40

On 6 June 2017 at 09:49, Benjamin Tissoires
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
Hi,

On Jun 05 2017 or thereabouts, Masaki Ota wrote:
quoted
Hi, Damjan,

Latest X1 Carbon system has two TrackPoint venders.
One is Alps, the other is Elantech. ( Touchpad is only Synaptics.)

To detect the device, we can send "E1" command by using pass-through.
The device response is as below.
If Alps, E1 -> 02
If Elantech, E1-> 01

It's a spec, but I have not checked it.
Thanks. This made me realize that we have a difference between the PS/2
handling of the touchpad and the RMI4 use: in the PS/2 protocol, we
mark the pass-through device as such by using SERIO_PS_PSTHRU.
While in RMI4, we mark it as if it was a platform device, meaning we
check on every protocol.

Damjan, would you mind trying the following change:
diff --git a/drivers/input/rmi4/rmi_f03.c b/drivers/input/rmi4/rmi_f03.c
index 77dad04..ad71a5e 100644
--- a/drivers/input/rmi4/rmi_f03.c
+++ b/drivers/input/rmi4/rmi_f03.c
@@ -146,7 +146,7 @@ static int rmi_f03_register_pt(struct f03_data *f03)
        if (!serio)
                return -ENOMEM;

-       serio->id.type = SERIO_8042;
+       serio->id.type = SERIO_PS_PSTHRU;
        serio->write = rmi_f03_pt_write;
        serio->port_data = f03;

---
If this gives equal results than when using synaptics_intertouch=0, then
I guess this will be a good candidate for an rc.
what equal results?

based on 4.12-rc4 (ba7b2387ad239a519041f2a2d35a1902bdd03dfb) and this
change, and 'psmouse' loaded with no options, I get:

[    9.151247] psmouse serio1: synaptics: queried max coordinates: x
[..5676], y [..4760]
[    9.181297] psmouse serio1: synaptics: queried min coordinates: x
[1266..], y [1094..]
[    9.181300] psmouse serio1: synaptics: Your touchpad (PNP: LEN0072
PNP0f13) says it can support a different bus. If i2c-hid and hid-rmi
are not used, you might want to try setting
psmouse.synaptics_intertouch to 1 and report this to
linux-input@vger.kernel.org.
[    9.240307] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.2,
id: 0x1e2b1, caps: 0xf002a3/0x940300/0x12e800/0x400000, board id:
3289, fw id: 2492434
[    9.240310] psmouse serio1: synaptics: serio: Synaptics
pass-through port at isa0060/serio1/input0
[    9.278160] input: SynPS/2 Synaptics TouchPad as
/devices/platform/i8042/serio1/input/input6
[    9.281307] mousedev: PS/2 mouse device common for all mice

$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎜   ↳ ImPS/2 Generic Wheel Mouse                id=12   [slave  pointer  (2)]


-- 
damjan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help