diff options
| author | Jie Feng <[email protected]> | 2026-05-21 14:52:38 +0800 |
|---|---|---|
| committer | Jie Feng <[email protected]> | 2026-05-26 21:00:31 +0800 |
| commit | d63a45509fd283f5ffccc29cd8569e6efd075c59 (patch) | |
| tree | 248757b8f9c0cd9c80a0381bc9f2802e68045bed | |
| parent | 7b9f6eabd8623c2bbe188c8d53072b16a087cdda (diff) | |
ch32_usbhs: fix endpoint stall length index and clear-stall response
Fix issue in the stall handling:
- dcd_edpt_stall() for an IN endpoint cleared EP_TX_LEN(0) instead of
EP_TX_LEN(ep_num), clobbering endpoint 0's transmit length register
when stalling any other IN endpoint.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
| -rw-r--r-- | src/portable/wch/dcd_ch32_usbhs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/portable/wch/dcd_ch32_usbhs.c b/src/portable/wch/dcd_ch32_usbhs.c index a6dd5bb79..ea3b052ad 100644 --- a/src/portable/wch/dcd_ch32_usbhs.c +++ b/src/portable/wch/dcd_ch32_usbhs.c @@ -354,7 +354,7 @@ void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr) { if (dir == TUSB_DIR_OUT) { EP_RX_CTRL(ep_num) = USBHS_EP_R_RES_STALL; } else { - EP_TX_LEN(0) = 0; + EP_TX_LEN(ep_num) = 0; EP_TX_CTRL(ep_num) = USBHS_EP_T_RES_STALL; } } |
