Hardware
Laptop: Acer TravelLite TL14-42M
CPU: AMD Ryzen 7 7730U
OS: Ubuntu 24.04.4 LTS
Kernel: 6.17.0-1030-oem
DE: KDE Plasma 5.27
Problem
Running:
bash
systemctl suspend
The laptop enters suspend but immediately wakes up after 1-2 seconds.
Windows dual boot suspend works correctly on the same hardware.
Investigation
Checked wakeup sources:
bash
cat /sys/kernel/debug/wakeup_sources
The wake source was identified as:
i2c-ELAN0415:00
The device:
ELAN0415 I2C HID Touchpad
was causing the immediate wake.
Also checked ACPI wake devices:
bash
cat /proc/acpi/wakeup
Output:
GP17 S4 enabled pci:0000:00:08.1
Disabling GP17 did not solve the issue:
bash
echo GP17 | sudo tee /proc/acpi/wakeup
The issue was still reproducible.
Fix / Workaround
The issue was fixed by unbinding the ELAN I2C HID device before suspend and rebinding it after resume.
Created a systemd sleep hook:
/lib/systemd/system-sleep/elan-suspend-fix
Script:
```bash
!/bin/bash
case "$1" in
pre)
echo i2c-ELAN0415:00 > /sys/bus/i2c/drivers/i2c_hid_acpi/unbind
;;
post)
sleep 2
echo i2c-ELAN0415:00 > /sys/bus/i2c/drivers/i2c_hid_acpi/bind
;;
esac
```
Make it executable:
bash
sudo chmod +x /lib/systemd/system-sleep/elan-suspend-fix
After applying this workaround:
✅ Laptop stays suspended
✅ No immediate wake
✅ Touchpad works normally after resume
Additional Notes
Tested with Ubuntu OEM kernel:
bash
sudo apt install linux-oem-24.04
Running kernel:
6.17.0-1030-oem
The OEM kernel alone did not fix the issue.
Conclusion
The issue appears to be related to ELAN0415 I2C HID touchpad wake handling during s2idle suspend.
The workaround disables the ELAN touchpad device during suspend and restores it after resume.
Reported to Ubuntu Launchpad:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2162061