summaryrefslogtreecommitdiff
path: root/docs/reference
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-06-19 22:55:54 +0700
committerhathach <[email protected]>2026-06-19 22:55:54 +0700
commit58b5447b606b49c76187c48e5b76690f4a111143 (patch)
treedb17a05437cec861c6f424686c1c610a971f26aa /docs/reference
parent0c4c0be4589b2807abde5ef9ab156b6aaaad6616 (diff)
dcd/ch58x: advance EP0 OUT data toggle for multi-packet control transfers
The manual-toggle ISR skipped EP0 entirely (if (ep != 0)), so EP0's RX data toggle was set to DATA1 once at SETUP and never advanced. A control-OUT whose data stage exceeds the EP0 packet size (a vendor/WebUSB OUT, a large HID SET_REPORT, or an HS DFU download) desynced on the second packet and stalled. EP0 has no hardware auto-toggle on CH58x (per the datasheet RB_UEP_AUTO_TOG applies only to EP1/2/3/5/6/7), so flip its RX toggle on every OUT and always process the packet -- restoring what the removed dcd_ch58x_usbfs.c did. The HIL examples keep their control-OUT data stages within a single packet, so this was latent. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'docs/reference')
0 files changed, 0 insertions, 0 deletions