diff options
Diffstat (limited to 'nuttx/arch/arm/src')
-rw-r--r-- | nuttx/arch/arm/src/stm32/stm32_usbdev.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_usbdev.c b/nuttx/arch/arm/src/stm32/stm32_usbdev.c index c10ac104b..54148b230 100644 --- a/nuttx/arch/arm/src/stm32/stm32_usbdev.c +++ b/nuttx/arch/arm/src/stm32/stm32_usbdev.c @@ -1085,8 +1085,7 @@ static struct stm32_req_s *stm32_rqdequeue(struct stm32_ep_s *privep) * Name: stm32_rqenqueue ****************************************************************************/ -static void stm32_rqenqueue(struct stm32_ep_s *privep, - struct stm32_req_s *req) +static void stm32_rqenqueue(struct stm32_ep_s *privep, struct stm32_req_s *req) { req->flink = NULL; if (!privep->head) @@ -1446,7 +1445,10 @@ static void stm32_epdone(struct stm32_usbdev_s *priv, uint8_t epno) priv->rxstatus = USB_EPR_STATRX_VALID; } - else + + /* NAK further OUT packets if there there no more read requests */ + + if (stm32_rqempty(privep)) { usbtrace(TRACE_INTDECODE(STM32_TRACEINTID_EPOUTPENDING), (uint16_t)epno); |