diff options
| author | kamtom480 <[email protected]> | 2021-02-24 18:25:46 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-02-24 18:25:46 +0100 |
| commit | 280297bdb7aec67adf347ec046943a48a71647df (patch) | |
| tree | 8c54abe08fe675480fdeca93cc8222833e253390 | |
| parent | 63a9e68af20d89285518f76321036cec664758ad (diff) | |
| parent | 448dcdc4cf6ff20a96840fc23944167fc4e88501 (diff) | |
Merge pull request #680 from kamtom480/fix_setup
spresense: fix setup processed flag
| -rw-r--r-- | src/portable/sony/cxd56/dcd_cxd56.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/portable/sony/cxd56/dcd_cxd56.c b/src/portable/sony/cxd56/dcd_cxd56.c index 904176ba1..54958182b 100644 --- a/src/portable/sony/cxd56/dcd_cxd56.c +++ b/src/portable/sony/cxd56/dcd_cxd56.c @@ -329,6 +329,7 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t to { if (total_bytes == 0) { + usbdcd_driver.setup_processed = true; dcd_event_xfer_complete(0, ep_addr, 0, XFER_RESULT_SUCCESS, false); } else if (ep_addr == 0x00 && total_bytes == usbdcd_driver.outlen) @@ -350,12 +351,15 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t to } } - usbdcd_driver.setup_processed = true; struct usb_ctrlreq_s ctrl; - if (osal_queue_receive(usbdcd_driver.setup_queue, &ctrl)) + if (usbdcd_driver.setup_processed) { - dcd_event_setup_received(0, (uint8_t *)&ctrl, false); + if (osal_queue_receive(usbdcd_driver.setup_queue, &ctrl)) + { + usbdcd_driver.setup_processed = false; + dcd_event_setup_received(0, (uint8_t *)&ctrl, false); + } } } else |
