summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJacob Potter <[email protected]>2021-01-03 15:16:54 -0700
committerJacob Potter <[email protected]>2021-01-03 15:16:54 -0700
commit3158b323d8d701f70b80dca986f8b0e8e60eba97 (patch)
tree85dab9efffab85f13f8c3669611d0d197a06ad24 /src
parent57058e33fceecf16161c37f2d9796934b392a2ea (diff)
Adapt to new control xfer callback
Diffstat (limited to 'src')
-rw-r--r--src/class/cdc/cdc_ncm_device.c12
-rw-r--r--src/class/cdc/cdc_ncm_device.h3
-rw-r--r--src/device/usbd.c3
3 files changed, 5 insertions, 13 deletions
diff --git a/src/class/cdc/cdc_ncm_device.c b/src/class/cdc/cdc_ncm_device.c
index 4698fa9c2..a8983dd91 100644
--- a/src/class/cdc/cdc_ncm_device.c
+++ b/src/class/cdc/cdc_ncm_device.c
@@ -292,14 +292,6 @@ uint16_t ncmd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint1
return drv_len;
}
-// Invoked when class request DATA stage is finished.
-bool ncmd_control_complete(uint8_t rhport, tusb_control_request_t const * request)
-{
- (void) rhport;
- (void) request;
- return true;
-}
-
static void ncm_report()
{
if (ncm_interface.report_state == REPORT_SPEED) {
@@ -317,8 +309,10 @@ static void ncm_report()
// Handle class control request
// return false to stall control endpoint (e.g unsupported request)
-bool ncmd_control_request(uint8_t rhport, tusb_control_request_t const * request)
+bool ncmd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const * request)
{
+ if ( stage != CONTROL_STAGE_SETUP ) return true;
+
switch ( request->bmRequestType_bit.type )
{
case TUSB_REQ_TYPE_STANDARD:
diff --git a/src/class/cdc/cdc_ncm_device.h b/src/class/cdc/cdc_ncm_device.h
index 1c767cad2..e6c7237b1 100644
--- a/src/class/cdc/cdc_ncm_device.h
+++ b/src/class/cdc/cdc_ncm_device.h
@@ -77,8 +77,7 @@ void tud_ncm_link_state_cb(bool state);
void ncmd_init (void);
void ncmd_reset (uint8_t rhport);
uint16_t ncmd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t max_len);
-bool ncmd_control_request (uint8_t rhport, tusb_control_request_t const * request);
-bool ncmd_control_complete (uint8_t rhport, tusb_control_request_t const * request);
+bool ncmd_control_xfer_cb (uint8_t rhport, uint8_t stage, tusb_control_request_t const * request);
bool ncmd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes);
#ifdef __cplusplus
diff --git a/src/device/usbd.c b/src/device/usbd.c
index e2110b7a8..c6124263f 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -217,8 +217,7 @@ static usbd_class_driver_t const _usbd_driver[] =
.init = ncmd_init,
.reset = ncmd_reset,
.open = ncmd_open,
- .control_request = ncmd_control_request,
- .control_complete = ncmd_control_complete,
+ .control_xfer_cb = ncmd_control_xfer_cb,
.xfer_cb = ncmd_xfer_cb,
.sof = NULL
},