I'm having the same isse with a ThinkPad E14 Gen2 and this has been bugging me for years. Using "Windows" suspend mode in UEFI works - but it drains the battery much faster. The solution was to create a workaround script with a systemd unit.
Save this script to some file like /usr/local/bin/trackpoint-fix
, then make it executable.
#!/bin/bash
echo -n "none" | sudo tee /sys/bus/serio/devices/serio1/drvctl
sleep 3
echo -n "reconnect" | sudo tee /sys/bus/serio/devices/serio1/drvctl
Then create a systemd unit:
sudo systemctl edit --force --full trackpoint-fix.service
[Unit]
Description=Fixes trackpoint
[Service]
Type=oneshot
ExecStart=/usr/local/bin/trackpoint-fix
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=multi-user.target sleep.target
Lastly, enable it: sudo systemctl enable trackpoint-fix
Works like a charm for me!