mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-06 14:43:20 +00:00
Fixed DualSense controllers not being picked up by the HIDAPI driver
The hidraw device may take additional time to get the correct permissions for us to open it. In my tests on Steam Deck hardware, this ranges between 5-8ms.
This commit is contained in:
parent
4e81b4e8de
commit
c6ee9780df
1 changed files with 11 additions and 1 deletions
|
|
@ -1096,7 +1096,17 @@ hid_device * HID_API_EXPORT hid_open_path(const char *path)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
dev->device_handle = open(path, O_RDWR | O_CLOEXEC);
|
||||
const int MAX_ATTEMPTS = 10;
|
||||
int attempt;
|
||||
for (attempt = 1; attempt <= MAX_ATTEMPTS; ++attempt) {
|
||||
dev->device_handle = open(path, O_RDWR | O_CLOEXEC);
|
||||
if (dev->device_handle < 0 && errno == EACCES) {
|
||||
/* udev might be setting up permissions, wait a bit and try again */
|
||||
usleep(1 * 1000);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (dev->device_handle >= 0) {
|
||||
int res, desc_size = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue