DualShock 4 and DualSense periodically idle disconnect and fail to reconnect
Description:
As of 5.73, and unfixed with #6 (closed) patch, there is an issue with UserspaceHID support in BlueZ, the default option in new installs. It's fixed by a patch series in waiting, which I also adjusted to work with this package in the upstream issue. The issues are threefold:
- UserspaceHID disregards the idle timeout setting, and times out regardless of the setting, which otherwise defaults to disabled. It seems to also ignore the actual activity of the device and times out periodically anyway. Patch commit #1 (closed) fixes this.
- Patch commit #2 (closed) changes the timeout setting to seconds, allowing finer grained configuration.
- Patch commit #3 (closed) changes the reconnect logic to replay more of the connect time actions, which should fix the actual disconnects from breaking these devices.
The issues cause DualShock 4 and DualSense (and also Xbox Series X|S Wireless Controller, in my testing) to disconnect regularly while in use, and occasionally get stuck spamming the kernel log with messages when reconnecting. I am testing the patch, and will post further feedback in this issue when I have put them through their paces tomorrow.
Additional info:
- package version(s): bluez 5.73-4
- link to upstream bug report, if any: https://github.com/bluez/bluez/issues/777
Steps to reproduce:
- Install bluez 5.73-2 or newer
- Make sure input.conf is set to its default of UserspaceHID commented out or true
- Pair a DualShock 4 or DualSense controller, or an Xbox Series X|S Wireless Controller.
- Play Fall Guys, which is freely available on EGS through Heroic Games Launcher, or any number of other games.
- Controller randomly disconnects and reconnects.