From 3fdd0e5d4202c39746be5103593c381784fd1b05 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 19 Mar 2026 08:28:54 -0400 Subject: [PATCH] Ensure haptic feedback trackpad doesn't disappear after sleep/reboot --- .../hardware/fix-dell-xps-haptic-touchpad.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 install/config/hardware/fix-dell-xps-haptic-touchpad.sh diff --git a/install/config/hardware/fix-dell-xps-haptic-touchpad.sh b/install/config/hardware/fix-dell-xps-haptic-touchpad.sh new file mode 100644 index 00000000..776715f5 --- /dev/null +++ b/install/config/hardware/fix-dell-xps-haptic-touchpad.sh @@ -0,0 +1,16 @@ +# Fix Dell XPS haptic touchpad losing haptic feedback after suspend/resume. +# The I2C controller's runtime power management aggressively suspends the touchpad, +# and on resume the haptic engine sometimes fails to reinitialize. +# This udev rule keeps the I2C controller always on to prevent that. +# Applies to any Dell XPS with the Synaptics haptic touchpad (06CB:D01A). + +if cat /sys/class/dmi/id/product_name 2>/dev/null | grep -qi "XPS" \ + && ls /sys/bus/i2c/devices/i2c-VEN_06CB:00 2>/dev/null; then + sudo tee /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules << 'EOF' +# Disable runtime PM for I2C controller to prevent haptic touchpad losing feedback after suspend +ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:19.0", ATTR{power/control}="on" +ACTION=="add", SUBSYSTEM=="platform", KERNEL=="i2c_designware.0", ATTR{power/control}="on" +EOF + sudo udevadm control --reload-rules + sudo udevadm trigger --subsystem-match=pci --attr-match=device=0x00:19.0 2>/dev/null +fi