mirror of
https://github.com/hathach/tinyusb.git
synced 2025-04-16 05:42:56 +00:00
migrate dfu runtime device to new control xfer cb
This commit is contained in:
parent
7df979673d
commit
3cc1979adb
@ -85,17 +85,14 @@ uint16_t dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, ui
|
|||||||
return drv_len;
|
return drv_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dfu_rtd_control_complete(uint8_t rhport, tusb_control_request_t const * request)
|
// Invoked when a control transfer occurred on an interface of this class
|
||||||
|
// Driver response accordingly to the request and the transfer stage (setup/data/ack)
|
||||||
|
// return false to stall control endpoint (e.g unsupported request)
|
||||||
|
bool dfu_rtd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const * request)
|
||||||
{
|
{
|
||||||
(void) rhport;
|
// nothing to do with DATA and ACK stage
|
||||||
(void) request;
|
if ( stage != CONTROL_STAGE_SETUP ) return true;
|
||||||
|
|
||||||
// nothing to do
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool dfu_rtd_control_request(uint8_t rhport, tusb_control_request_t const * request)
|
|
||||||
{
|
|
||||||
TU_VERIFY(request->bmRequestType_bit.recipient == TUSB_REQ_RCPT_INTERFACE);
|
TU_VERIFY(request->bmRequestType_bit.recipient == TUSB_REQ_RCPT_INTERFACE);
|
||||||
|
|
||||||
// dfu-util will try to claim the interface with SET_INTERFACE request before sending DFU request
|
// dfu-util will try to claim the interface with SET_INTERFACE request before sending DFU request
|
||||||
|
@ -66,8 +66,7 @@ TU_ATTR_WEAK void tud_dfu_rt_reboot_to_dfu(void); // TODO rename to _cb conventi
|
|||||||
void dfu_rtd_init(void);
|
void dfu_rtd_init(void);
|
||||||
void dfu_rtd_reset(uint8_t rhport);
|
void dfu_rtd_reset(uint8_t rhport);
|
||||||
uint16_t dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t max_len);
|
uint16_t dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t max_len);
|
||||||
bool dfu_rtd_control_request(uint8_t rhport, tusb_control_request_t const * request);
|
bool dfu_rtd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const * request);
|
||||||
bool dfu_rtd_control_complete(uint8_t rhport, tusb_control_request_t const * request);
|
|
||||||
bool dfu_rtd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
bool dfu_rtd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -183,8 +183,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
|||||||
.init = dfu_rtd_init,
|
.init = dfu_rtd_init,
|
||||||
.reset = dfu_rtd_reset,
|
.reset = dfu_rtd_reset,
|
||||||
.open = dfu_rtd_open,
|
.open = dfu_rtd_open,
|
||||||
.control_xfer_cb = dfu_rtd_control_request,
|
.control_xfer_cb = dfu_rtd_control_xfer_cb,
|
||||||
.control_complete = dfu_rtd_control_complete,
|
|
||||||
.xfer_cb = dfu_rtd_xfer_cb,
|
.xfer_cb = dfu_rtd_xfer_cb,
|
||||||
.sof = NULL
|
.sof = NULL
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user