summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Leeren <[email protected]>2023-10-07 17:36:28 +0800
committersakumisu <[email protected]>2023-10-07 23:46:28 +0800
commit3d96f64f940ed6123a73433e7ce333de0f10d5bb (patch)
tree76bba58e9e1c2d15213e8f3fa05ca649c75ce1fa
parenta746eb4bb185ef5161f62b4f65a780855f0dee88 (diff)
Fix possible errors in endpoint 0 datapid
-rw-r--r--port/ch32/usb_dc_usbfs.c2
-rw-r--r--port/ch32/usb_dc_usbhs.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/port/ch32/usb_dc_usbfs.c b/port/ch32/usb_dc_usbfs.c
index b2241b02..69492b33 100644
--- a/port/ch32/usb_dc_usbfs.c
+++ b/port/ch32/usb_dc_usbfs.c
@@ -270,7 +270,7 @@ void USBD_IRQHandler(void)
case USBFS_UIS_TOKEN_IN:
if (ep_idx == 0x00) {
- if (g_ch32_usbfs_udc.in_ep[ep_idx].xfer_len > g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps) {
+ if (g_ch32_usbfs_udc.in_ep[ep_idx].xfer_len >= g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps) {
g_ch32_usbfs_udc.in_ep[ep_idx].xfer_len -= g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps;
g_ch32_usbfs_udc.in_ep[ep_idx].actual_xfer_len += g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps;
ep0_tx_data_toggle ^= 1;
diff --git a/port/ch32/usb_dc_usbhs.c b/port/ch32/usb_dc_usbhs.c
index 359e00e6..8cc9e0a6 100644
--- a/port/ch32/usb_dc_usbhs.c
+++ b/port/ch32/usb_dc_usbhs.c
@@ -258,7 +258,7 @@ void USBD_IRQHandler(void)
if (token == PID_IN) {
if (ep_idx == 0x00) {
- if (g_ch32_usbhs_udc.in_ep[ep_idx].xfer_len > g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps) {
+ if (g_ch32_usbhs_udc.in_ep[ep_idx].xfer_len >= g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps) {
g_ch32_usbhs_udc.in_ep[ep_idx].xfer_len -= g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps;
g_ch32_usbhs_udc.in_ep[ep_idx].actual_xfer_len += g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps;
ep0_tx_data_toggle ^= 1;