summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-04-01 23:50:26 +0700
committerhathach <[email protected]>2026-04-01 23:50:26 +0700
commit087ceb7417e6c1d72701ae491407490cfe5c6558 (patch)
treef960bc487e74375602bbe9379d2b5608e26594bb /src
parentd2050487b7a248636792743dac36c238d1e3f2af (diff)
fix issue caused by merging active + pending state
Diffstat (limited to 'src')
-rw-r--r--src/portable/raspberrypi/rp2040/dcd_rp2040.c2
-rw-r--r--src/portable/raspberrypi/rp2040/rp2040_usb.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/portable/raspberrypi/rp2040/dcd_rp2040.c b/src/portable/raspberrypi/rp2040/dcd_rp2040.c
index ca03ebf8a..2b6bbc43b 100644
--- a/src/portable/raspberrypi/rp2040/dcd_rp2040.c
+++ b/src/portable/raspberrypi/rp2040/dcd_rp2040.c
@@ -253,7 +253,7 @@ static void __tusb_irq_path_func(dcd_rp2040_irq)(void) {
struct hw_endpoint *ep = hw_endpoint_get(i, TUSB_DIR_IN);
// Active Bulk IN endpoint requires SOF
- if (ep->e15_bulk_in && ep->state == EPSTATE_ACTIVE) {
+ if (ep->e15_bulk_in && ep->state >= EPSTATE_ACTIVE) {
keep_sof_alive = true;
hw_endpoint_lock_update(ep, 1);
diff --git a/src/portable/raspberrypi/rp2040/rp2040_usb.c b/src/portable/raspberrypi/rp2040/rp2040_usb.c
index 206da041b..1b13934d3 100644
--- a/src/portable/raspberrypi/rp2040/rp2040_usb.c
+++ b/src/portable/raspberrypi/rp2040/rp2040_usb.c
@@ -322,7 +322,7 @@ bool __tusb_irq_path_func(rp2usb_xfer_continue)(hw_endpoint_t *ep, io_rw_32 *ep_
bool is_rx) {
hw_endpoint_lock_update(ep, 1);
- if (ep->state != EPSTATE_ACTIVE) {
+ if (ep->state == EPSTATE_IDLE) {
// probably land here due to short packet on rx with double buffered
hw_endpoint_lock_update(ep, -1);
return false;