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.
Without those changes i got some usb assertions when running with an AHB clock frequncy of 24MHz on my main development machine.
It seems like endpoint events should be ignored if there was also a reset event, otherwise the next "real" endpoint event will lead to an "already transmitting/receiving" assertion.
Except for the setup packet handling, the ep0 endpoint is identical, so i moved the setup handling also to the handling for all endpoints.
The late address set mode worked better for me, otherwise i did get one dmesg line on FreeBSD or Linux.
By handling the usb in interrupts first, some usb assertions (wrong ep0 state) were gone as well.