t480: only arm the keyboard for wake, not the root hubs

Arming the built-in xHCI root hubs made them wake on hub-level events
(USB-C PD negotiation, SD card reader, internal peripherals), causing the
laptop to immediately self-wake from suspend. Drop the root-hub rule and arm
only the keyboard leaf by VID:PID; a leaf device's remote-wakeup propagates
through the hub without the hub's own wakeup flag being set.
This commit is contained in:
2026-08-19 23:50:55 +01:00
parent d7894065f7
commit a0d9135695
+6 -5
View File
@@ -7,11 +7,12 @@
# cannot wake the machine after an unplug-triggered suspend. The built-in xHCI
# (00:14.0) stays wake-capable in S3, so a keyboard on a built-in port works.
#
# Arm the built-in xHCI root hubs (idVendor 1d6b = Linux Foundation root hub),
# scoped to the built-in controller so the TB3 root hubs are left untouched.
ACTION=="add", SUBSYSTEM=="usb", KERNELS=="0000:00:14.0", ATTR{idVendor}=="1d6b", ATTR{power/wakeup}="enabled"
# Arm the IQUNIX MQ80 keyboard itself. Match by VID:PID — the USB bus path
# is unstable across re-enumeration, so path-based matching is unreliable.
# Arm ONLY the keyboard itself (match by VID:PID — the USB bus path is
# unstable across re-enumeration). Deliberately do NOT arm the built-in root
# hubs: arming a whole root hub makes it wake on hub-level events (USB-C PD
# negotiation, the SD card reader, internal peripherals), causing spurious
# self-wakes. A leaf device's remote-wakeup propagates through the hub without
# the hub's own wakeup flag being set.
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="320f", ATTR{idProduct}=="5055", ATTR{power/wakeup}="enabled"
'';
};