diff options
| author | hathach <[email protected]> | 2019-11-03 18:00:07 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2019-11-03 18:00:07 +0700 |
| commit | 65e96e5d525ea02e0ca7f265a4d62b4f428cc821 (patch) | |
| tree | ab7187b5627774f6e82e2cceaced4f09f6692306 /src/device | |
| parent | 2d98dae13e5a380bcaf8033a886d1220d174710d (diff) | |
added optional dcd_control_status_complete()
Diffstat (limited to 'src/device')
| -rw-r--r-- | src/device/dcd.h | 4 | ||||
| -rw-r--r-- | src/device/usbd_control.c | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/device/dcd.h b/src/device/dcd.h index 9fa98c669..c88465cbb 100644 --- a/src/device/dcd.h +++ b/src/device/dcd.h @@ -119,6 +119,10 @@ void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr); // clear stall, data toggle is also reset to DATA0
void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr);
+// Invoked when a control transfer's status stage is complete.
+// May help DCD to prepare for next control transfer, this API is optional.
+void dcd_control_status_complete(uint8_t rhport) TU_ATTR_WEAK;
+
//--------------------------------------------------------------------+
// Event API
//--------------------------------------------------------------------+
diff --git a/src/device/usbd_control.c b/src/device/usbd_control.c index f41614ef1..d37e9ec2a 100644 --- a/src/device/usbd_control.c +++ b/src/device/usbd_control.c @@ -129,6 +129,7 @@ bool usbd_control_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result if ( tu_edpt_dir(ep_addr) != _ctrl_xfer.request.bmRequestType_bit.direction )
{
TU_ASSERT(0 == xferred_bytes);
+ if (dcd_control_status_complete) dcd_control_status_complete(rhport);
return true;
}
|
