You are not logged in.

#1 2018-04-19 01:49:08

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

Update 2: There might still be issues with suspend in conjunction with tlp, see further down

Update: Removing the "i2c_i801" kernel module from the modprobe blacklist works in conjunction with adding "synaptics_intertouch=1", see this followup. Marking as solved.

First off,
Hi Arch people! Great to be joining this great community.

As reported already on the Lenovo forums and on StackExchange, the TrackPoint and TouchPad on the new Lenovo X1 Carbon, 6th Gen 2018 do not work at the same time out of the box.

Symptoms are:
- Both Touchpad and TrackPoint only work every ~5 seconds for about half a second
- dmesg shows:

psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
psmouse serio1: Touchpad at isa0060/serio1/input0 lost sync at byte 1
psmouse serio1: Issuing reconnect request

I have the 20KG model(20KGS03800), FHD with NFC, which means the TrackPoint, three mouse buttons and the NFC chip are somehow on the same bus?

Solutions that have been suggested:

- Disabling the TrackPoint in BIOS: Works, Touchpad is fully functional. Also disables the three mouse buttons above the touchpad.
- Activating psmouse.intertouch=1: Does not work for me
- Loading rmi_smbus kernel module before psmouse: Might work? See the linux-input mailing list
- Loading psmouse with "proto=imps": No multitouch possible

So I've gone and poked around a bit, turns out psmouse supports other parameters:
- resetafter is set to 5 by default, I've set it to 1
- rate is set to 100 by default, I've set it to 200
- synaptics_intertouch is set to 0, I've left it there
- proto is set to any, I've left it

So that leaves the following command line:

initrd=... root=... psmouse.synaptics_intertouch=0 psmouse.proto=any psmouse.resetafter=1 psmouse.rate=200 [..]

For me now both the Trackpoint incl. buttons and the Touchpad incl. multitouch work, without any hiccups or dmesg spam.

However it still takes too long to initialize the devices, Touchpad & TrackPoint are unresponsive for a few seconds immediately after bootup. The Trackpoint does not wake up from sleep/suspend when using "proto=any", only when setting "proto=imps" does it respond again.

Will post dmesg logs and hwinfo later.

If anyone has made progress, feel free to share. Especially the Wiki Page is still very terse. I've created the accompanying Talk page as well.

Last edited by mrfaber (2018-10-02 04:09:53)

Offline

#2 2018-04-20 15:24:40

Ranguvar
Member
Registered: 2008-08-12
Posts: 2,540

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

Unfortunate. My X1C6 is working fine.
I did add psmouse.synaptics_intertouch=1, because a dmesg warning suggested I do so, but I had no problems before that I noticed.

Trackpad and trackpoint work at the same time, but it seems once trackpoint starts taking input, trackpad stops being listened to.

I do not have the NFC version, I have the 20KH model.
The X1C5 had several different models of trackpad/trackpoint in the same model year, so it may be that way this year also.

Last edited by Ranguvar (2018-04-20 15:26:05)

Offline

#3 2018-04-25 20:17:00

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

Thanks for the report, Ranguvar.

I've collected logs, but it just seems to me that the behaviour is wildly inconsistent.

Booted with latest kernel 4.16, tried both via Ubuntu mainline and Arch latest

lshw:

myhostname
    description: Notebook
    product: 20KGS03800 (LENOVO_MT_20KG_BU_Think_FM_ThinkPad X1 Carbon 6th)
    vendor: LENOVO
    version: ThinkPad X1 Carbon 6th
    serial: XXXXXXXXXX
    width: 64 bits
    capabilities: smbios-3.0 dmi-3.0 smp vsyscall32
    configuration: administrator_password=disabled chassis=notebook family=ThinkPad X1 Carbon 6th power-on_password=disabled sku=LENOVO_MT_20KG_BU_Think_FM_ThinkPad X1 Carbon 6th uuid=XXXX-XXXX-XXXX-XXXX-XXXX
  *-core
       description: Motherboard
       product: 20KGS03800
       vendor: LENOVO
       physical id: 0
       version: Not Defined
       serial: XXXXX
       slot: Not Available
     *-memory
          description: System Memory
          physical id: 3
          slot: System board or motherboard
          size: 16GiB
        *-bank:0
             description: Row of chips LPDDR3 Synchronous Unbuffered (Unregistered) 2133 MHz (0,5 ns)
             product: H9CCNNNCLGALAR-NVD
             vendor: SK Hynix
             physical id: 0
             serial: 00000000
             slot: ChannelA-DIMM0
             size: 8GiB
             width: 64 bits
             clock: 2133MHz (0.5ns)
        *-bank:1
             description: Row of chips LPDDR3 Synchronous Unbuffered (Unregistered) 2133 MHz (0,5 ns)
             product: H9CCNNNCLGALAR-NVD
             vendor: SK Hynix
             physical id: 1
             serial: 00000000
             slot: ChannelB-DIMM0
             size: 8GiB
             width: 64 bits
             clock: 2133MHz (0.5ns)
     *-cache:0
          description: L1 cache
          physical id: 7
          slot: L1 Cache
          size: 256KiB
          capacity: 256KiB
          capabilities: synchronous internal write-back unified
          configuration: level=1
     *-cache:1
          description: L2 cache
          physical id: 8
          slot: L2 Cache
          size: 1MiB
          capacity: 1MiB
          capabilities: synchronous internal write-back unified
          configuration: level=2
     *-cache:2
          description: L3 cache
          physical id: 9
          slot: L3 Cache
          size: 8MiB
          capacity: 8MiB
          capabilities: synchronous internal write-back unified
          configuration: level=3
     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
          vendor: Intel Corp.
          physical id: a
          bus info: cpu@0
          version: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
          serial: None
          slot: U3E1
          size: 2400MHz
          capacity: 4GHz
          width: 64 bits
          clock: 100MHz
          capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves ibpb ibrs stibp dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp cpufreq
          configuration: cores=4 enabledcores=4 threads=8
     *-firmware
          description: BIOS
          vendor: LENOVO
          physical id: b
          version: N23ET33W (1.08 )
          date: 01/22/2018
          size: 128KiB
          capacity: 15MiB
          capabilities: pci pnp upgrade shadowing cdboot bootselect edd int13floppy720 int5printscreen int9keyboard int14serial int17printer int10video acpi usb biosbootspecification uefi
     *-pci
          description: Host bridge
          product: Intel Corporation
          vendor: Intel Corporation
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 08
          width: 32 bits
          clock: 33MHz
        *-display
             description: VGA compatible controller
             product: Intel Corporation
             vendor: Intel Corporation
             physical id: 2
             bus info: pci@0000:00:02.0
             version: 07
             width: 64 bits
             clock: 33MHz
             capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
             configuration: driver=i915 latency=0
             resources: iomemory:2f0-2ef iomemory:2f0-2ef irq:132 memory:2ffa000000-2ffaffffff memory:2fa0000000-2fafffffff ioport:e000(size=64) memory:c0000-dffff
        *-generic:0
             description: Signal processing controller
             product: Skylake Processor Thermal Subsystem
             vendor: Intel Corporation
             physical id: 4
             bus info: pci@0000:00:04.0
             version: 08
             width: 64 bits
             clock: 33MHz
             capabilities: msi pm cap_list
             configuration: driver=proc_thermal latency=0
             resources: iomemory:2f0-2ef irq:16 memory:2ffb020000-2ffb027fff
        *-generic:1 UNCLAIMED
             description: System peripheral
             product: Skylake Gaussian Mixture Model
             vendor: Intel Corporation
             physical id: 8
             bus info: pci@0000:00:08.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: msi pm cap_list
             configuration: latency=0
             resources: iomemory:2f0-2ef memory:2ffb02f000-2ffb02ffff
        *-usb
             description: USB controller
             product: Sunrise Point-LP USB 3.0 xHCI Controller
             vendor: Intel Corporation
             physical id: 14
             bus info: pci@0000:00:14.0
             version: 21
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi xhci cap_list
             configuration: driver=xhci_hcd latency=0
             resources: iomemory:2f0-2ef irq:123 memory:2ffb010000-2ffb01ffff
           *-usbhost:0
                product: xHCI Host Controller
                vendor: Linux 4.16.0-041600-generic xhci-hcd
                physical id: 0
                bus info: usb@1
                logical name: usb1
                version: 4.16
                capabilities: usb-2.00
                configuration: driver=hub slots=12 speed=480Mbit/s
              *-usb:0
                   description: Bluetooth wireless interface
                   vendor: Intel Corp.
                   physical id: 7
                   bus info: usb@1:7
                   version: 0.10
                   capabilities: bluetooth usb-2.00
                   configuration: driver=btusb maxpower=100mA speed=12Mbit/s
              *-usb:1
                   description: Video
                   product: Integrated Camera
                   vendor: Chicony Electronics Co.,Ltd.
                   physical id: 8
                   bus info: usb@1:8
                   version: 4.25
                   serial: 0001
                   capabilities: usb-2.01
                   configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
              *-usb:2 UNCLAIMED
                   description: Generic USB device
                   vendor: Synaptics, Inc.
                   physical id: 9
                   bus info: usb@1:9
                   version: 1.64
                   serial: XXXX
                   capabilities: usb-2.00
                   configuration: maxpower=100mA speed=12Mbit/s
           *-usbhost:1
                product: xHCI Host Controller
                vendor: Linux 4.16.0-041600-generic xhci-hcd
                physical id: 1
                bus info: usb@2
                logical name: usb2
                version: 4.16
                capabilities: usb-3.00
                configuration: driver=hub slots=6 speed=5000Mbit/s
        *-generic:2
             description: Signal processing controller
             product: Sunrise Point-LP Thermal subsystem
             vendor: Intel Corporation
             physical id: 14.2
             bus info: pci@0000:00:14.2
             version: 21
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi cap_list
             configuration: driver=intel_pch_thermal latency=0
             resources: iomemory:2f0-2ef irq:18 memory:2ffb02e000-2ffb02efff
        *-communication
             description: Communication controller
             product: Sunrise Point-LP CSME HECI #1
             vendor: Intel Corporation
             physical id: 16
             bus info: pci@0000:00:16.0
             version: 21
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list
             configuration: driver=mei_me latency=0
             resources: iomemory:2f0-2ef irq:133 memory:2ffb02d000-2ffb02dfff
        *-pci:0
             description: PCI bridge
             product: Intel Corporation
             vendor: Intel Corporation
             physical id: 1c
             bus info: pci@0000:00:1c.0
             version: f1
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:16 memory:ee200000-ee2fffff
           *-network
                description: Wireless interface
                product: Wireless 8265 / 8275
                vendor: Intel Corporation
                physical id: 0
                bus info: pci@0000:02:00.0
                logical name: wlp2s0
                version: 78
                serial: XX:XX:XX:XX:XX:XX
                width: 64 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
                configuration: broadcast=yes driver=iwlwifi driverversion=4.16.0-041600-generic firmware=31.560484.0 ip=192.168.0.131 latency=0 link=yes multicast=yes wireless=IEEE 802.11
                resources: irq:134 memory:ee200000-ee201fff
        *-pci:1
             description: PCI bridge
             product: Sunrise Point-LP PCI Express Root Port #5
             vendor: Intel Corporation
             physical id: 1c.4
             bus info: pci@0000:00:1c.4
             version: f1
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:16 memory:ee100000-ee1fffff
           *-storage
                description: Non-Volatile memory controller
                product: Samsung Electronics Co Ltd
                vendor: Samsung Electronics Co Ltd
                physical id: 0
                bus info: pci@0000:04:00.0
                version: 00
                width: 64 bits
                clock: 33MHz
                capabilities: storage pm msi pciexpress msix nvm_express bus_master cap_list
                configuration: driver=nvme latency=0
                resources: irq:16 memory:ee100000-ee103fff
        *-pci:2
             description: PCI bridge
             product: Sunrise Point-LP PCI Express Root Port #9
             vendor: Intel Corporation
             physical id: 1d
             bus info: pci@0000:00:1d.0
             version: f1
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode cap_list
             configuration: driver=pcieport
             resources: irq:16 ioport:2000(size=4096) memory:c0000000-ee0fffff ioport:2fb0000000(size=1241513984)
        *-isa
             description: ISA bridge
             product: Intel Corporation
             vendor: Intel Corporation
             physical id: 1f
             bus info: pci@0000:00:1f.0
             version: 21
             width: 32 bits
             clock: 33MHz
             capabilities: isa bus_master
             configuration: latency=0
        *-memory UNCLAIMED
             description: Memory controller
             product: Sunrise Point-LP PMC
             vendor: Intel Corporation
             physical id: 1f.2
             bus info: pci@0000:00:1f.2
             version: 21
             width: 32 bits
             clock: 33MHz (30.3ns)
             configuration: latency=0
             resources: memory:ee320000-ee323fff
        *-multimedia
             description: Audio device
             product: Intel Corporation
             vendor: Intel Corporation
             physical id: 1f.3
             bus info: pci@0000:00:1f.3
             version: 21
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list
             configuration: driver=snd_hda_intel latency=64
             resources: iomemory:2f0-2ef iomemory:2f0-2ef irq:135 memory:2ffb028000-2ffb02bfff memory:2ffb000000-2ffb00ffff
        *-serial UNCLAIMED
             description: SMBus
             product: Sunrise Point-LP SMBus
             vendor: Intel Corporation
             physical id: 1f.4
             bus info: pci@0000:00:1f.4
             version: 21
             width: 64 bits
             clock: 33MHz
             configuration: latency=0
             resources: iomemory:2f0-2ef memory:2ffb02c000-2ffb02c0ff ioport:efa0(size=32)
        *-network
             description: Ethernet interface
             product: Ethernet Connection (4) I219-V
             vendor: Intel Corporation
             physical id: 1f.6
             bus info: pci@0000:00:1f.6
             logical name: enp0s31f6
             version: 21
             serial: XX:XX:XX:XX:XX:XX
             capacity: 1Gbit/s
             width: 32 bits
             clock: 33MHz
             capabilities: pm msi cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.1-4 latency=0 link=no multicast=yes port=twisted pair
             resources: irq:124 memory:ee300000-ee31ffff
  *-battery
       product: 01AV430
       vendor: SMP
       physical id: 1
       slot: Front
       capacity: 57020mWh
       configuration: voltage=11,5V

libinput enable-debug:

-event2   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k
-event4   DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k
-event1   DEVICE_ADDED     Lid Switch                        seat0 default group3  cap:S
-event0   DEVICE_ADDED     Sleep Button                      seat0 default group4  cap:k
-event13  DEVICE_ADDED     Integrated Camera: Integrated C   seat0 default group5  cap:k
-event9   DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=7       seat0 default group6  cap:
-event10  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=8       seat0 default group6  cap:
-event11  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=9       seat0 default group6  cap:
-event12  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=10      seat0 default group6  cap:
-event6   DEVICE_ADDED     HDA Intel PCH Mic                 seat0 default group6  cap:
-event7   DEVICE_ADDED     HDA Intel PCH Headphone           seat0 default group6  cap:
-event8   DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=3       seat0 default group6  cap:
-event3   DEVICE_ADDED     AT Translated Set 2 keyboard      seat0 default group7  cap:k
-event14  DEVICE_ADDED     SynPS/2 Synaptics TouchPad        seat0 default group8  cap:pg  size 70x50mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on
-event15  DEVICE_ADDED     TPPS/2 Elan TrackPoint            seat0 default group9  cap:p left scroll-nat scroll-button
-event5   DEVICE_ADDED     ThinkPad Extra Buttons            seat0 default group10 cap:k
-event3   KEYBOARD_KEY      +2.31s	*** (-1) pressed
 event3   KEYBOARD_KEY      +2.49s	*** (-1) pressed

dmesg for cold boot:

[    0.000000] Command line: initrd=\initrd.img-mainline rw root=/dev/nvme0n1p2 quiet splash acpi.ec_no_wakeup=1 psmouse.synaptics_intertouch=1 psmouse.proto=any psmouse.resetafter=1 psmouse.rate=200 mem_sleep_default=deep
[    0.000000] Kernel command line: initrd=\initrd.img-mainline rw root=/dev/nvme0n1p2 quiet splash acpi.ec_no_wakeup=1 psmouse.synaptics_intertouch=1 psmouse.proto=any psmouse.resetafter=1 psmouse.rate=200 mem_sleep_default=deep
[    1.648990] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
[    1.649063] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
[    1.649129] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    1.711428] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
[    2.217649] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input5
[    3.878216] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input6
[    3.943441] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[    4.003458] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input7
[    4.003504] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input8
[    4.003536] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input9
[    4.003563] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input10
[    4.003595] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input11
[    4.004417] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
[    4.004459] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input13
[    5.107809] input: Integrated Camera: Integrated C as /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input14
[    7.147319] rfkill: input handler disabled
[   89.127365] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[   89.162861] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[   89.162866] psmouse serio1: synaptics: Trying to set up SMBus access
[   89.165875] psmouse serio1: synaptics: SMbus companion is not ready yet
[   89.239691] psmouse serio1: synaptics: Touchpad model: 1, fw: 9.16, id: 0x1e2a1, caps: 0xf00ba3/0x940300/0x12e800/0x500000, board id: 3288, fw id: 2696789
[   89.239709] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[   89.292525] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input214
[   89.655028] psmouse serio2: Failed to reset mouse on synaptics-pt/serio0
[   90.326798] psmouse serio2: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[   90.783874] input: TPPS/2 Elan TrackPoint as /devices/platform/i8042/serio1/serio2/input/input215
[   91.061451] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
[   93.572219] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[   93.572225] psmouse serio1: issuing reconnect request
[   94.433605] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[   94.469909] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[   96.160424] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
[   99.696108] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[   99.696114] psmouse serio1: issuing reconnect request
[  100.561226] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[  100.603737] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[  670.044194] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[  688.568535] psmouse serio2: Failed to reset mouse on synaptics-pt/serio0
[  693.086384] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/serio2/input/input217
[  693.353947] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
[  745.482325] psmouse serio2: Failed to disable mouse on synaptics-pt/serio0
[  762.132141] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/serio2/input/input219
[  762.399955] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0

dmesg during suspend:

$ echo -n none > /sys/devices/platform/i8042/serio1/drvctl
$ echo -n reconnect > /sys/devices/platform/i8042/serio1/drvctl
> nothing improves for TrackPoint
$ echo -n "reconnect" | tee /sys/bus/serio/devices/serio1/drvctl
> grep dmesg for psmouse and input:
[ 3397.272796] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3397.272802] psmouse serio1: issuing reconnect request
[ 3398.162750] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3398.209801] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 3406.904614] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3406.904620] psmouse serio1: issuing reconnect request
[ 3407.693617] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3407.728712] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 3408.213807] psmouse serio3: Failed to reset mouse on synaptics-pt/serio0
[ 3411.428506] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/serio3/input/input247
[ 3411.693351] psmouse serio3: Failed to enable mouse on synaptics-pt/serio0
[ 3413.334574] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3413.334579] psmouse serio1: issuing reconnect request
[ 3414.216038] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3414.263712] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 3416.724827] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3416.724832] psmouse serio1: issuing reconnect request
[ 3417.642085] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3417.688700] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 3418.674231] psmouse serio3: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[ 3419.269442] input: TPPS/2 Elan TrackPoint as /devices/platform/i8042/serio1/serio3/input/input249
[ 3419.553407] psmouse serio3: Failed to enable mouse on synaptics-pt/serio0
[ 3420.416398] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3420.416404] psmouse serio1: issuing reconnect request
[ 3421.271443] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3421.303724] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 3422.830265] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3422.830271] psmouse serio1: issuing reconnect request
[ 3423.736911] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3423.774292] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 3424.683542] psmouse serio3: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[ 3425.153927] input: TPPS/2 Elan TrackPoint as /devices/platform/i8042/serio1/serio3/input/input251
[ 3425.437336] psmouse serio3: Failed to enable mouse on synaptics-pt/serio0
[ 3426.295534] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 3426.295540] psmouse serio1: issuing reconnect request
[ 3427.193718] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 3427.240840] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]

raw suspend data:
$ systemctl suspend
[ 3240.157529] e1000e: enp0s31f6 NIC Link is Down
[ 3240.214845] wlp2s0: deauthenticating from XX:XX:XX:XX:XX:XX by local choice (Reason: 3=DEAUTH_LEAVING)
[ 3245.125659] PM: suspend entry (s2idle)
[ 3245.125660] PM: Syncing filesystems ... done.
[ 3245.133700] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 3245.135609] OOM killer disabled.
[ 3245.135610] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 3245.136746] Suspending console(s) (use no_console_suspend to debug)
[ 3245.376017] psmouse serio3: Failed to disable mouse on synaptics-pt/serio0
[ 3245.993424] e1000e: EEE TX LPI TIMER: 00000011
[ 3246.184296] thinkpad_acpi: unknown possible thermal alarm or keyboard event received
[ 3246.184300] thinkpad_acpi: unhandled HKEY event 0x6032
[ 3246.184302] thinkpad_acpi: please report the conditions when this event happened to ibm-acpi-devel@lists.sourceforge.net
> wakeup happens around here I think
[ 3252.229516] nvme nvme0: Shutdown timeout set to 8 seconds
[ 3252.302362] OOM killer enabled.
[ 3252.302363] Restarting tasks ... done.
[ 3252.308289] thermal thermal_zone6: failed to read out thermal zone (-61)
[ 3252.322812] PM: suspend exit
[ 3252.328496] IPv6: ADDRCONF(NETDEV_UP): enp0s31f6: link is not ready
[ 3252.541920] IPv6: ADDRCONF(NETDEV_UP): enp0s31f6: link is not ready
[ 3252.544496] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 3252.778422] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 3252.879291] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 3258.671361] wlp2s0: authenticate with 00:0c:f6:b9:87:8a
[ 3258.681034] wlp2s0: send auth to 00:0c:f6:b9:87:8a (try 1/3)
[ 3258.690557] wlp2s0: authenticated
[ 3258.693571] wlp2s0: associate with XX:XX:XX:XX:XX:XX (try 1/3)
[ 3258.699952] wlp2s0: RX AssocResp from XX:XX:XX:XX:XX:XX (capab=0x411 status=0 aid=2)
[ 3258.703320] wlp2s0: associated
[ 3258.920920] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[ 3387.497791] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/serio3/input/input245
[ 3387.769395] psmouse serio3: Failed to enable mouse on synaptics-pt/serio0

Another log for manual reconect without reload psmouse kernel module:

$ echo -n "reconnect" | sudo tee /sys/bus/serio/devices/serio1/drvctl
[ 2485.630291] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 2485.677603] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 2489.896856] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 2489.896862] psmouse serio1: issuing reconnect request
[ 2490.781637] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 2490.829200] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 2491.791717] psmouse serio2: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[ 2492.387674] input: TPPS/2 Elan TrackPoint as /devices/platform/i8042/serio1/serio2/input/input229
[ 2492.675212] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
[ 2494.060872] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 2494.060878] psmouse serio1: issuing reconnect request
[ 2494.978200] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 2495.011594] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 2496.613993] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 2496.614000] psmouse serio1: issuing reconnect request
[ 2497.489078] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 2497.534754] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 2498.559785] psmouse serio2: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[ 2498.857906] input: TPPS/2 Elan TrackPoint as /devices/platform/i8042/serio1/serio2/input/input231
[ 2499.131296] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
[ 2499.978061] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 2499.978066] psmouse serio1: issuing reconnect request
[ 2500.842430] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 2500.886304] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[ 2502.211304] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
[ 2503.665166] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
[ 2503.665172] psmouse serio1: issuing reconnect request
[ 2504.505769] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[ 2504.547916] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
$ echo -n reconnect > /sys/devices/platform/i8042/serio1/drvctl
> same thing this time

/proc/bus/input/devices

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
U: Uniq=
H: Handlers=kbd event0 
B: PROP=0
B: EV=3
B: KEY=4000 0 0

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
U: Uniq=
H: Handlers=event1 
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
U: Uniq=
H: Handlers=kbd event2 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab54
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input3
U: Uniq=
H: Handlers=sysrq kbd event3 leds 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input5
U: Uniq=
H: Handlers=kbd event4 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0019 Vendor=17aa Product=5054 Version=4101
N: Name="ThinkPad Extra Buttons"
P: Phys=thinkpad_acpi/input0
S: Sysfs=/devices/platform/thinkpad_acpi/input/input6
U: Uniq=
H: Handlers=rfkill kbd event5 
B: PROP=0
B: EV=33
B: KEY=10040 0 18040000 0 50100000000000 0 1701b02102004 c000280041114000 10e000000000000 0
B: MSC=10
B: SW=8

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input7
U: Uniq=
H: Handlers=event6 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input8
U: Uniq=
H: Handlers=event7 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input9
U: Uniq=
H: Handlers=event8 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input10
U: Uniq=
H: Handlers=event9 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input11
U: Uniq=
H: Handlers=event10 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=9"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input12
U: Uniq=
H: Handlers=event11 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=10"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input13
U: Uniq=
H: Handlers=event12 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0003 Vendor=04f2 Product=b61e Version=0425
N: Name="Integrated Camera: Integrated C"
P: Phys=usb-0000:00:14.0-8/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input14
U: Uniq=
H: Handlers=kbd event13 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0011 Vendor=0002 Product=0007 Version=01a1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input214
U: Uniq=
H: Handlers=mouse0 event14 
B: PROP=5
B: EV=b
B: KEY=e520 10000 0 0 0 0
B: ABS=660800011000003

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=synaptics-pt/serio0/input0
S: Sysfs=/devices/platform/i8042/serio1/serio2/input/input223
U: Uniq=
H: Handlers=mouse1 event15 
B: PROP=1
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3


Another observation: After manual reconnection a new device is opened, going from serio2 to serio8 and so on, I think this is only for the TrackPoint since the Touchpad remains at serio1

Last edited by mrfaber (2018-07-13 17:18:46)

Offline

#4 2018-04-26 02:13:39

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

More investigation: According to this github gist, one could somehow coerce the kernel to intialize the pointing devices via the RMI4 protocol, which might improve things as the TrackPoint is loaded via PS/2 emulation at the moment.

As of Kernel 4.16, the patch to rmi_smbus has been merged, but the newer X1 models are not yet whitelisted in drivers/input/mouse/synaptics.c (the PNP ids are not included).

For reference, this is the output of "cat /sys/bus/pnp/devices/*/id":

PNP0c02
PNP0c02
PNP0c02
PNP0b00
INT3f0d
PNP0c02
LEN0071
PNP0303
LEN0092
PNP0f13
PNP0c02
PNP0c02
PNP0c02
PNP0c01

So our synaptics pointing devices are LEN0071 and LEN0092 if I read this correctly. The Elan TrackPoint should be listed somewhere else I suppose?

Will now continue testing with 4.16.4, which seems to initialize the pointing devices correctly after some retries at boot. So far, even the TrackPoint survices suspends.
Now trying to see if including rmi_smbus into the initramfs speeds up loading the Touchpad.

Edit: Even with rmi_smbus loaded the initializations takes a few retries. And smbus access is still reported as lacking:

[  143.149203] psmouse serio1: synaptics: Trying to set up SMBus access
[  143.152349] psmouse serio1: synaptics: SMbus companion is not ready yet
[  143.229431] psmouse serio1: synaptics: Touchpad model: 1, fw: 9.16, id: 0x1e2a1, caps: 0xf00ba3/0x940300/0x12e800/0x500000, board id: 3288, fw id: 2696789
[  143.229449] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0

But watching the linux-input mailing list, I've noticed Benjamin Tissoires working on some patches to get the TrackPoint working over RMI. They're not included in the kernel yet, but might be soon.
Aparently the work is now centering on porting Elantech devices over to SMBus, see this patch

Many of the Elantech devices are connected through PS/2 and a different
bus (SMBus or plain I2C).

To not break any existing device, we only enable SMBus based
on a module parameter. If some laptops require the quirk to
be set, we will have to rely on a list of PNPIds or MDI matching
to individually expose those hardware over SMBus.
the parameter mentioned above is elantech_smbus from the psmouse
module.

Most interesting for us is Benjamin’s work on getting Thinkpads to work, especially our X1C6, see this patch:

This time, Lenovo decided to go with different pieces in its latest series
of Thinkpads.

For those we have been able to test:
- the T480 is using Synaptics with an IBM trackpoint
   -> it behaves properly with or without intertouch, there is no point
      not using RMI4
- the X1 Carbon 6th gen is using Synaptics with an IBM trackpoint
   -> the touchpad doesn't behave properly under PS/2 so we have to
      switch it to RMI4 if we do not want to have disappointed users
- the X280 is using Synaptics with an ALPS trackpoint
   -> the recent fixes in the trackpoint handling fixed it so upstream
      now works fine with or without RMI4, and there is no point not
      using RMI4
- the T480s is using an Elan touchpad, so that's a different story

So we will have to wait a bit for them to get included into 4.17, or you might try to compile a kernel with his patches applied.
Michael on StackExchange reports success with CONFIG_RMI4 kernel options applied, so this seems to be the path forward.

So, all in all, good news I’d say!

Last edited by mrfaber (2018-04-26 02:39:26)

Offline

#5 2018-04-26 20:50:38

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

As proposed on the Lenovo forums, de-blacklisting "i2c_i801" from modprobe does enable the trackpoint to work reliably. There is occasional dropout in tap-to-click functionality though, but no log entries are generated for that. Cannot really confirm if it's due to me not tapping hard enough(not pressing to generate a hardware "click"!), because after a few tries it works.
I can confirm this survives suspends for me as well.

In detail:

in /etc/modprobe.d/blacklist.conf
[...]
# causes failure to suspend on HP compaq nc6000 (Ubuntu: #10306)
blacklist i2c_i801
[...]

Comment out that line and regenerate initramfs/initrd via mkinitcpio.

New logs:

$ dmesg | ag "(psmouse|input|thinkpad|touchpad|trackpoint|elan|synaptic|rmi|serio)"
[    0.000000] Command line: initrd=\initrd.img-generic rw root=/dev/nvme0n1p2 quiet splash acpi.ec_no_wakeup=1 psmouse.synaptics_intertouch=1 psmouse.proto=any psmouse.resetafter=1 psmouse.rate=200 mem_sleep_default=deep loglevel=2
[    0.000000] Kernel command line: initrd=\initrd.img-generic rw root=/dev/nvme0n1p2 quiet splash acpi.ec_no_wakeup=1 psmouse.synaptics_intertouch=1 psmouse.proto=any psmouse.resetafter=1 psmouse.rate=200 mem_sleep_default=deep loglevel=2
[    0.951071] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
[    0.951156] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
[    0.951228] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    1.006574] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.006587] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.008669] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
[    1.204756] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input5
[    2.842704] thinkpad_acpi: ThinkPad ACPI Extras v0.25
[    2.842705] thinkpad_acpi: http://ibm-acpi.sf.net/
[    2.842706] thinkpad_acpi: ThinkPad BIOS N23ET33W (1.08 ), EC unknown
[    2.842707] thinkpad_acpi: Lenovo ThinkPad X1 Carbon 6th, model 20KGS03800
[    2.844426] thinkpad_acpi: radio switch found; radios are enabled
[    2.844440] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[    2.844441] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
[    2.847424] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    2.880797] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
[    2.887609] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7
[    3.274763] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[    3.339793] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input8
[    3.340510] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input9
[    3.340568] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input10
[    3.340614] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input11
[    3.340682] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
[    3.340736] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input13
[    3.340766] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input14
[    3.705019] psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4758]
[    3.737072] psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1094..]
[    3.737077] psmouse serio1: synaptics: Trying to set up SMBus access
[    3.740992] rmi4_smbus 6-002c: registering SMbus-connected sensor
[    3.783453] rmi4_f34 rmi4-00.fn34: rmi_f34v7_probe: Unrecognized bootloader version
[    3.783470] rmi4_f34: probe of rmi4-00.fn34 failed with error -22
[    3.803854] rmi4_f01 rmi4-00.fn01: found RMI device, manufacturer: Synaptics, product: TM3288-011, fw id: 2696789
[    3.882523] input: Synaptics TM3288-011 as /devices/rmi4-00/input/input15
[    3.893948] serio: RMI4 PS/2 pass-through port at rmi4-00.fn03
[    3.998997] input: Integrated Camera: Integrated C as /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input17
[    4.018498] psmouse serio2: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[    4.057088] input: TPPS/2 Elan TrackPoint as /devices/rmi4-00/rmi4-00.fn03/serio2/input/input16
[    6.170345] rfkill: input handler disabled
> Suspend and resume
[  203.339157] psmouse serio1: Failed to disable mouse on isa0060/serio1
[  203.740442] thinkpad_acpi: unknown possible thermal alarm or keyboard event received
[  203.740444] thinkpad_acpi: unhandled HKEY event 0x6032
[  203.740444] thinkpad_acpi: please report the conditions when this event happened to ibm-acpi-devel@lists.sourceforge.net
[  408.193241] rmi4_f12 rmi4-00.fn12: Failed to read object data. Code: -6.

rmi4 and psmouse are still throwing errors around, but both Touchpad and TrackPoint work on boot, albeit after a few seconds. It might be because my bootup is too fast and devices are not initialized yet.

$ systemd-analyze time
Startup finished in 6.189s (firmware) + 2.323s (loader) + 2.563s (kernel) + 1.052s (userspace) = 12.129s
graphical.target reached after 722ms in userspace

Last edited by mrfaber (2018-04-26 22:34:22)

Offline

#6 2018-04-26 21:18:29

progandy
Member
Registered: 2012-05-17
Posts: 3,182

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

/etc/modprobe.d/blacklist.conf should not exist on a fresh arch linux installation, you have to explicitly create it.

Learn from this and try to understand configuration files you find online before applying them and remove options that do not apply to your machine. In this case, the blacklist entry was clearly marked for an HP device, so you shouldn't use it with a lenovo.


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#7 2018-04-27 00:40:17

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

Hey progandy, the blacklist.conf came from Ubuntu, you are right, arch does not have it. I will investigate with a fresh install since mine has become "tainted" from all that experimenting.
I've updated the entry in the Arch Wiki to contain the correct information.

BTW, Ranguvar and progandy, do you have the problem with tap-to-click dropping out sometimes as well? I am not talking about pressing the whole touchpad down, that works reliably, but only tapping with a finger lightly. This affects double-tap-and-drag to select as well for me.

Last edited by mrfaber (2018-04-27 00:43:45)

Offline

#8 2018-05-02 20:00:29

Ranguvar
Member
Registered: 2008-08-12
Posts: 2,540

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

I haven't used tap-to-click on Linux at all, so I couldn't say.

I'll report back if I start and notice anything like that.

Thanks for all of your work and adding to the Wiki!

Last edited by Ranguvar (2018-05-02 20:00:58)

Offline

#9 2018-05-10 20:32:11

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

With a fresh install, just adding

psmouse.synaptics_intertouch=1

to the kernel cmdline works, both Touchpad and TrackPoint are behaving properly, apart from the rmi_smbus module complaining about an unrecognized bootloader and very rare dropouts. This is with kernel 4.16.7-1 ARCH.

But with patched DSDT tables and TLP enabled the issue of Touchpad tap-to-click sporadically ceasing to function reappers, so this is not an Arch-only problem.
If anyone has had success in making TLP work with this Touchpad please tell us your secrets...

This is what I've tried so far with regard to TLP:

#/etc/default/tlp
USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1
USB_AUTOSUSPEND=0
# 00:1f.4 is the SMBus device:
# lspci
# 00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
RUNTIME_PM_BLACKLIST="00:1f.4"

This fixes the issue with the default TLP settings where the TrackPoint stops working after resume from suspend.

What is so strange to me is that nobody seems to be able to reproduce the tap-to-click dropout, which is happening all the time for me.

Offline

#10 2018-05-15 20:38:27

dmtry
Member
From: Maa
Registered: 2006-11-07
Posts: 12

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

mrfaber wrote:

What is so strange to me is that nobody seems to be able to reproduce the tap-to-click dropout, which is happening all the time for me.

You are not alone. Happens with me all the time. Thanks for sharing tips. It's really handy.

Offline

#11 2018-06-17 12:27:52

Serchio
Member
Registered: 2018-06-17
Posts: 1

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

dmtry wrote:
mrfaber wrote:

What is so strange to me is that nobody seems to be able to reproduce the tap-to-click dropout, which is happening all the time for me.

You are not alone. Happens with me all the time. Thanks for sharing tips. It's really handy.

It happens with me as well. I figured out how to restore tapping but you might want to confirm it. From my point of view it is enough to call "xinput" in terminal. I will add that command to crontab and call it every minute - so for me it is a temporary solution but at least it works.

EDIT.

Ok, it didn't help. The only way to restore tapping is to invoke something in terminal for example "ps" sad I have created a bug report here: https://gitlab.freedesktop.org/libinput … /issues/46

Last edited by Serchio (2018-06-18 10:33:12)

Offline

#12 2018-07-07 06:00:46

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

Serchio, thank you for filing the bug report on libinput. I have installed libinput-1.11.2-1, which includes the "touchpad: don't disable tapping on MT_TOOL_PALM" commit.
Testing now, fingers crossed.

Offline

#13 2018-10-02 00:45:37

mrfaber
Member
Registered: 2016-08-09
Posts: 18

Re: Lenovo X1C6 (2018): TrackPoint/Touchpad issues, 20KG model

With libinput 1.12.0-2, linux 4.18.10 and TLP enabled, the touchpad and trackpoint both work fine.
I get a few errors on boot in the log, but they're cosmetic.

[   10.940355] rmi4_smbus 6-002c: registering SMbus-connected sensor
[   10.979998] rmi4_f34 rmi4-00.fn34: rmi_f34v7_probe: Unrecognized bootloader version
[   10.980099] rmi4_f34: probe of rmi4-00.fn34 failed with error -22
[   10.999289] rmi4_f01 rmi4-00.fn01: found RMI device, manufacturer: Synaptics, product: TM3288-011, fw id: 2696789
[   11.078776] input: Synaptics TM3288-011 as /devices/rmi4-00/input/input17
[   11.083095] mousedev: PS/2 mouse device common for all mice
[   11.089893] serio: RMI4 PS/2 pass-through port at rmi4-00.fn03
[   11.211658] psmouse serio2: trackpoint: Elan TrackPoint firmware: 0x04, buttons: 3/3
[   11.249925] input: TPPS/2 Elan TrackPoint as /devices/rmi4-00/rmi4-00.fn03/serio2/input/input18

But suspending is still an issue, the pointing devices do not survive every other suspend.

Before suspend:

kernel: rmi4_physical rmi4-00: rmi_driver_set_irq_bits: Failed to change enabled interrupts!
kernel: psmouse: probe of serio2 failed with error -1
kernel: psmouse serio1: Failed to deactivate mouse on isa0060/serio1: -5

After:

kernel: rmi4_f12 rmi4-00.fn12: Failed to read object data. Code: -6.

Which I gather has something to do with rmi_smbus irq codes.

There is a bug on the Fedora bugtracker about something similar but it has gone stale. If anyone has gotten any further info, please keep us in the know. I might contact the libinput people and file a bug in the kernel input bugtracker.

For now, this is what I use.

# /etc/systemd/system/touchpad-sleep.service
# restore touchpad on suspend

[Unit]
Description=Restore Touchpad on suspend
Before=sleep.target
StopWhenUnneeded=yes

[Service]
#Type=oneshot
Type=idle
RemainAfterExit=yes
ExecStart=/bin/bash -c 'echo "0000:00:1f.4" > /sys/bus/pci/drivers/i801_smbus/unbind'
ExecStop=/bin/bash -c 'echo "0000:00:1f.4" > /sys/bus/pci/drivers/i801_smbus/bind'

[Install]
WantedBy=sleep.target

This unit forcibly unbinds the touchpad before sleep and the re-binds it via the i801_smbus pci driver. This means it takes a few seconds on wake-up before the touchpad is responsive.

---

Just for my and others future reference

"systool -b pci -p -a" outputs all pci devices. ( -p shows paths, -a shows all attributes, -v is more verbose). systool is part of sysfsutils. The output should match the contents in /sys/devices/pci0000:00/0000:00:1f.4.

The contents can be viewed conveniently via udevadm info:

udevadm info -a -p /sys/devices/pci0000:00/0000:00:1f.4

  looking at device '/devices/pci0000:00/0000:00:1f.4':
    KERNEL=="0000:00:1f.4"
    SUBSYSTEM=="pci"
    DRIVER=="i801_smbus"
    ATTR{ari_enabled}=="0"
    ATTR{broken_parity_status}=="0"
    ATTR{class}=="0x0c0500"
    ATTR{consistent_dma_mask_bits}=="32"
    ATTR{d3cold_allowed}=="0"
    ATTR{device}=="0x9d23"
    ATTR{devspec}==""
    ATTR{dma_mask_bits}=="32"
    ATTR{driver_override}=="(null)"
    ATTR{enable}=="4"
    ATTR{irq}=="16"
    ATTR{local_cpulist}=="0-7"
    ATTR{local_cpus}=="ff"
    ATTR{msi_bus}=="1"
    ATTR{revision}=="0x21"
    ATTR{subsystem_device}=="0x225c"
    ATTR{subsystem_vendor}=="0x17aa"
    ATTR{vendor}=="0x8086"

"lspci" shows all pci buses and connected devices. (-k shows kernel drivers, -t gives a tree view, similar to lsusb)
Of interest:

00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
	Subsystem: Lenovo Sunrise Point-LP SMBus
	Kernel driver in use: i801_smbus
	Kernel modules: i2c_i801

Note the address (00:1f.4) and the kernel drivers(i801_smbus) and modules(i2c_i801).

The input devices are also listed in /sys/bus/serio/devices/ and include:

  • serio0(keyboard "i8042 KBD port")

  • serio1(touchpad "i8042 AUX port", protocol is "SynSMBus")

  • serio5(touchpad/trackpoint combo(?) "RMI4 PS/2 pass-through", but can get assigned to serio6/7/... when reconnecting).

One could just echo "{none,reconnect}" into /sys/bus/serio/devices/serio5/drvctl, but this is not reliable as the serio5 designation is not permanent.

---

This is roughly how the input stack works(from Benjamin Tissoires - How to debug a broken input device?)
Physical layers:

  • PS/2

  • I2C

  • SMBus

  • USB

  • Bluetooth

  • serial

Protocols:

  • public: HID, psmouse

  • semi-public: RMI4, HID++ 2.0

Combinations:

  • RMI4 over HID over I2C

  • PS/2 over RMI4 over SMBus

  • HID++ over HID over DJ over HID over USB

Last edited by mrfaber (2018-10-02 00:52:17)

Offline

Board footer

Powered by FluxBB