diff --git a/arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c b/arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c index b39b0ad76a1..a63f5b9c06f 100644 --- a/arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c +++ b/arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c @@ -2390,7 +2390,14 @@ static int stm32_usb_interrupt(int irq, void *context, void *arg) /* And handle the completion event */ - stm32_epdone(priv, epno); + if (epno == EP0) + { + stm32_ep0done(priv, istr); + } + else + { + stm32_epdone(priv, epno); + } /* Fetch the status again for the next time through the loop */