summaryrefslogtreecommitdiff
path: root/examples/device/hid_multiple_interface
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-06-13 00:22:28 +0700
committerhathach <[email protected]>2026-06-13 23:34:57 +0700
commite47eabd49d1838dc2a4eb42b9bd167a1d24d7cf5 (patch)
tree7fbf33b923099a531b19e22edcdd96e8b44be5c6 /examples/device/hid_multiple_interface
parent3b73ee7e926d228bfa6ea4961d15a11a0310ed44 (diff)
dcd/musb: replay deferred SETUP instead of stalling EP0
dcd_edpt_stall(EP0 OUT) discarded the deferred SETUP and armed SendStall. A deferred SETUP can only exist once the old transfer's status stage was seen on the wire, so the request usbd is rejecting (class callback failing at CONTROL_STAGE_DATA) already succeeded host-side and the hardware already ACKed the next SETUP - the STALL would land on that innocent request, which then fails host-side without any tud callback ever seeing it. Skip the stall and replay the deferred SETUP; the rejected transfer needs no wire-level stall since it is already over. Review follow-up for #3643 (dcd_musb.c l.860 finding). Co-Authored-By: Claude Fable 5 <[email protected]>
Diffstat (limited to 'examples/device/hid_multiple_interface')
0 files changed, 0 insertions, 0 deletions