summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKamil Tomaszewski <[email protected]>2021-02-24 17:39:16 +0100
committerKamil Tomaszewski <[email protected]>2021-02-24 17:39:16 +0100
commit448dcdc4cf6ff20a96840fc23944167fc4e88501 (patch)
tree8c54abe08fe675480fdeca93cc8222833e253390 /src
parent63a9e68af20d89285518f76321036cec664758ad (diff)
spresense: fix setup processed flag
Diffstat (limited to 'src')
-rw-r--r--src/portable/sony/cxd56/dcd_cxd56.c10
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