mirror of
https://github.com/hathach/tinyusb.git
synced 2025-02-07 05:54:11 +08:00
add xferred bytes for device control
This commit is contained in:
parent
1d428b7fef
commit
d96abdb0ad
@ -76,10 +76,10 @@ void dcd_bus_event (uint8_t rhport, usbd_bus_event_type_t bus_event);
|
|||||||
void dcd_setup_received (uint8_t rhport, uint8_t const* p_request);
|
void dcd_setup_received (uint8_t rhport, uint8_t const* p_request);
|
||||||
void dcd_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, bool succeeded);
|
void dcd_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, bool succeeded);
|
||||||
|
|
||||||
static inline void dcd_control_complete(uint8_t rhport)
|
static inline void dcd_control_complete(uint8_t rhport, uint32_t xferred_bytes)
|
||||||
{
|
{
|
||||||
// all control complete is successful !!
|
// all control complete is successful !!
|
||||||
dcd_xfer_complete(rhport, 0, 0, true);
|
dcd_xfer_complete(rhport, 0, xferred_bytes, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
|
@ -556,12 +556,12 @@ void dcd_xfer_complete(uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes,
|
|||||||
{
|
{
|
||||||
if (ep_addr == 0 )
|
if (ep_addr == 0 )
|
||||||
{
|
{
|
||||||
|
// Control Transfer
|
||||||
(void) rhport;
|
(void) rhport;
|
||||||
(void) xferred_bytes;
|
|
||||||
(void) succeeded;
|
(void) succeeded;
|
||||||
|
|
||||||
// Control Transfer
|
// only signal data stage, skip status (zero byte)
|
||||||
osal_semaphore_post( _usbd_ctrl_sem );
|
if (xferred_bytes) osal_semaphore_post( _usbd_ctrl_sem );
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
usbd_task_event_t task_event =
|
usbd_task_event_t task_event =
|
||||||
|
@ -475,7 +475,7 @@ void hal_dcd_isr(uint8_t rhport)
|
|||||||
bool succeeded = ( p_qtd->xact_err || p_qtd->halted || p_qtd->buffer_err ) ? false : true;
|
bool succeeded = ( p_qtd->xact_err || p_qtd->halted || p_qtd->buffer_err ) ? false : true;
|
||||||
(void) succeeded;
|
(void) succeeded;
|
||||||
|
|
||||||
dcd_control_complete(rhport);
|
dcd_control_complete(rhport, p_qtd->expected_bytes - p_qtd->total_bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user