diff options
| author | hathach <[email protected]> | 2026-08-12 23:05:59 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-08-13 11:45:36 +0700 |
| commit | 91fbbd192ca9539221d3dc096f00ce77836a5d3d (patch) | |
| tree | 801ad543cc2608eb5804c3d3d0fd547246d08d83 /src/typec | |
| parent | a52562b2be7ea728a176ae94d8a18d9ae0a4423a (diff) | |
usbd: clear endpoint busy/claimed when a completion event is dropped
An XFER_COMPLETE dropped by a full event queue leaves its endpoint's
BUSY|CLAIMED state set forever - the consumer that normally clears it
never sees the event, so usbd_edpt_claim()/usbd_edpt_xfer() fail from
then on and the class never re-arms the endpoint. Clear both flags when
the enqueue fails: the completion is lost either way, but the endpoint
stays usable.
Unit test: arm a bulk endpoint, drop its completion against a full
queue, verify the endpoint can be claimed and re-armed.
Diffstat (limited to 'src/typec')
0 files changed, 0 insertions, 0 deletions
