By: Ammar <ammar.nanjiani@gmail.com>
fix(steammachine): keep the Bluetooth radio out of USB autosuspend An external controller (Switch Pro Controller) dropped and re-paired every few minutes. The kernel log showed the link being torn down mid-traffic: Bluetooth: hci0: ACL packet for unknown connection handle 2 nintendo 0005:057E:2009.00XX: joycon_enforce_subcmd_rate: exceeded max attempts Cause: the Bluetooth radio is an integrated Valve USB device (28de:1401) and btusb enables USB autosuspend by default. The adapter really does sleep — one boot showed runtime_suspended_time 3,238,298 ms against runtime_active_time 4,053,263 ms. Waking it drops the radio link. The Steam Controller's own puck arrives with power/control already set to "on", which is why that controller was never affected. No udev rule sets that, so the protection is incidental; pin the Bluetooth radio explicitly rather than depend on the same accident. Verified at runtime before making it declarative: writing "on" to /sys/bus/usb/devices/1-5/power/control stopped the drops. Scoped to idProduct 1401 so it cannot affect the Steam Controller puck or any other Valve device.
Total
1m37s
| Time to Start | Worker time | Duration | Time to finish | Idle | |
|---|---|---|---|---|---|
| Config | 0s | 1s | 1s | 1s | 0s |
| Eval | 1s | 44s | 44s | 46s | 0s |
| Build | 46s | 2m12s | 51s | 1m38s | 0s |
| Suite | 0s | 2m58s | 1m37s | 1m38s | 0s |