Handling of 0x20d6 xbox one X/S wired gamepads (avoid bursts and depletion of urbs) #44
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Gamepad of brand "under control" remains stuck at first auth handshake. Some occurences of urb depletions due to interrupt out bursts.
Proposal:
This PR is not top quality as it still include some delayed work with fixed delays that should ideally be replaced by triggering each transmission stage based on the interrupt out acknowledgement packet from the gamepad (routing protocol.c completion routines to gamepad.c, I guess) but this implies some future planning.
I've noticed that this kind of behavior was already implemented in the dongle.c implementation, maybe some merging is to be done to keep consistency between wired & dongle implementations.
At least, this PR works. Further improvement can be built on this.
Tested with a native Microsoft XBOX One controller for regressions. Seems fine.