Thread (3 messages) flat view 3 messages, 2 authors, 3d ago

[6.12.107] MSI G63 9SEK - Synaptics touchpad falls back to PS/2, multitouch lost at boot, fixed by delayed protocol write

From: Cameron Spencer <hidden>
Date: 2026-09-13 05:23:55

Good morning/afternoon/evening,

I experienced an issue where my Synaptics touchpad is registered as a 
basic PS/2 device at boot, losing all multitouch functionality 
(two-finger scroll, gestures). Writing "synaptics" to the sysfs protocol 
file a few seconds after boot restores the SynPS/2 extended protocol and 
full functionality.

System:

- Kernel: 6.12.107+deb13-amd64
- Distro: LMDE 7 (Debian 13 based)
- Laptop: MSI G63 9SEK
- i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 
irq 1,12
- Fix:
     $ cat /etc/systemd/system/psmouse-reload.service
     [Unit]
     Description=Set psmouse protocol to synaptics
     After=systemd-udev-settle.service

     [Service]
     Type=oneshot
     ExecStart=/bin/sh -c 'for i in 1 2 3 4 5; do echo -n synaptics > 
/sys/bus/serio/devices/serio1/protocol 2>/dev/null && exit 0; sleep 2; done'
     RemainAfterExit=yes

     [Install]
     WantedBy=multi-user.target

- Result:
     $ dmesg | grep -iE 'psmouse|synaptics|serio|i8042'
     [    1.006462] i8042: PNP: PS/2 Controller 
[PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
     [    1.010384] serio: i8042 KBD port at 0x60,0x64 irq 1
     [    1.010392] serio: i8042 AUX port at 0x60,0x64 irq 12
     [    1.018706] input: AT Translated Set 2 keyboard as 
/devices/platform/i8042/serio0/input/input0
     # psmouse probes at boot, fails the Synaptics handshake, registers 
as plain "PS/2 Synaptics TouchPad" (no multitouch)
     [    2.384949] input: PS/2 Synaptics TouchPad as 
/devices/platform/i8042/serio1/input/input6
     # psmouse-reload service runs after systemd-udev-settle and writes 
synaptics to /sys/bus/serio/devices/serio1/protocol, then re-probes with 
the Synaptics extended protocol, queries coordinates, and registers as 
"SynPS/2 Synaptics TouchPad" (multitouch restored)
     [    8.654815] psmouse serio1: synaptics: queried max coordinates: 
x [..5656], y [..4728]
     [    8.683422] psmouse serio1: synaptics: queried min coordinates: 
x [1284..], y [1128..]
     [    8.739382] psmouse serio1: synaptics: Touchpad model: 1, fw: 
8.2, id: 0x1e2b1, caps: 0xf00323/0x840300/0x26800/0x0, board id: 3163, 
fw id: 2286728
     [    8.775128] input: SynPS/2 Synaptics TouchPad as 
/devices/platform/i8042/serio1/input/input21

The issue is 100% reproducible across reboots. "options psmouse 
proto=synaptics" in modprobe config causes "EINVAL" on module insert. 
The handshake fails at that early stage. A systemd service that retries 
the sysfs write after systemd-udev-settle is a reliable workaround.

This appears to be a timing issue where the touchpad firmware or i8042 
controller is not ready for the Synaptics handshake at the time psmouse 
first probes. A retry with a short delay in the probe path, or a 
something more fancy with initial handshake, would likely resolve this.

Happy to provide additional info if required.


Kind regards,

Cameron Spencer

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