diff options
| author | hathach <[email protected]> | 2018-10-24 00:44:26 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2018-10-24 00:44:26 +0700 |
| commit | 55427606ef7fbdafa5a9da6b8a0f798dcb619817 (patch) | |
| tree | 0b76127b0de1ae08fa62359f959228b895101f73 /src/portable | |
| parent | e7a63324dd02bb8c8193b26631b4b7ef5d08fd0b (diff) | |
replace dcd_xfer_complete by dcd_xfer_complete()
Diffstat (limited to 'src/portable')
| -rw-r--r-- | src/portable/nordic/nrf5x/dcd_nrf5x.c | 16 | ||||
| -rw-r--r-- | src/portable/nxp/lpc43xx_lpc18xx/dcd_lpc43xx.c | 22 |
2 files changed, 18 insertions, 20 deletions
diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c index f04acb6e3..d1ca91173 100644 --- a/src/portable/nordic/nrf5x/dcd_nrf5x.c +++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c @@ -414,14 +414,12 @@ void USBD_IRQHandler(void) } } - dcd_event_t event = { .rhport = 0 }; - /*------------- Interrupt Processing -------------*/ if ( int_status & USBD_INTEN_USBRESET_Msk ) { bus_reset(); - event.event_id = DCD_EVENT_BUS_RESET; + dcd_event_t event = { .rhport = 0, .event_id = DCD_EVENT_BUS_RESET }; dcd_event_handler(&event, true); } @@ -439,7 +437,7 @@ void USBD_IRQHandler(void) NRF_USBD->WINDEXL , NRF_USBD->WINDEXH , NRF_USBD->WLENGTHL, NRF_USBD->WLENGTHH }; - event.event_id = DCD_EVENT_SETUP_RECEIVED; + dcd_event_t event = { .rhport = 0, .event_id = DCD_EVENT_SETUP_RECEIVED }; memcpy(&event.setup_received, setup, 8); dcd_event_handler(&event, true); @@ -461,7 +459,7 @@ void USBD_IRQHandler(void) }else { // Control IN complete - dcd_control_complete(0, _dcd.control.actual_len); + dcd_event_xfer_complete(0, 0, _dcd.control.actual_len, DCD_XFER_SUCCESS, true); } } } @@ -475,7 +473,7 @@ void USBD_IRQHandler(void) }else { // Control OUT complete - dcd_control_complete(0, _dcd.control.actual_len); + dcd_event_xfer_complete(0, 0, _dcd.control.actual_len, DCD_XFER_SUCCESS, true); } } @@ -506,7 +504,7 @@ void USBD_IRQHandler(void) xfer->total_len = xfer->actual_len; // BULK/INT OUT complete - dcd_xfer_complete(0, epnum, xfer->actual_len, true); + dcd_event_xfer_complete(0, epnum, xfer->actual_len, DCD_XFER_SUCCESS, true); } } @@ -535,7 +533,7 @@ void USBD_IRQHandler(void) } else { // Bulk/Int IN complete - dcd_xfer_complete(0, epnum | TUSB_DIR_IN_MASK, xfer->actual_len, true); + dcd_event_xfer_complete(0, epnum | TUSB_DIR_IN_MASK, xfer->actual_len, DCD_XFER_SUCCESS, true); } } } @@ -563,7 +561,7 @@ void USBD_IRQHandler(void) // SOF interrupt if ( int_status & USBD_INTEN_SOF_Msk ) { - event.event_id = DCD_EVENT_SOF; + dcd_event_t event = { .rhport = 0, .event_id = DCD_EVENT_SOF }; dcd_event_handler(&event, true); } } diff --git a/src/portable/nxp/lpc43xx_lpc18xx/dcd_lpc43xx.c b/src/portable/nxp/lpc43xx_lpc18xx/dcd_lpc43xx.c index 6e1d96168..8d53759e6 100644 --- a/src/portable/nxp/lpc43xx_lpc18xx/dcd_lpc43xx.c +++ b/src/portable/nxp/lpc43xx_lpc18xx/dcd_lpc43xx.c @@ -398,10 +398,11 @@ void xfer_complete_isr(uint8_t rhport, uint32_t reg_complete) if (p_qtd->int_on_complete)
{
- bool succeeded = ( p_qtd->xact_err || p_qtd->halted || p_qtd->buffer_err ) ? false : true;
+ uint8_t result = p_qtd->halted ? DCD_XFER_STALLED :
+ ( p_qtd->xact_err ||p_qtd->buffer_err ) ? DCD_XFER_FAILED : DCD_XFER_SUCCESS;
uint8_t ep_addr = edpt_phy2addr(ep_idx);
- dcd_xfer_complete(rhport, ep_addr, p_qtd->expected_bytes - p_qtd->total_bytes, succeeded); // only number of bytes in the IOC qtd
+ dcd_event_xfer_complete(rhport, ep_addr, p_qtd->expected_bytes - p_qtd->total_bytes, result, true); // only number of bytes in the IOC qtd
}
}
}
@@ -418,13 +419,12 @@ void hal_dcd_isr(uint8_t rhport) if (int_status == 0) return;// disabled interrupt sources
- dcd_event_t event = { .rhport = rhport };
if (int_status & INT_MASK_RESET)
{
bus_reset(rhport);
- event.event_id = DCD_EVENT_BUS_RESET;
+ dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_BUS_RESET };
dcd_event_handler(&event, true);
}
@@ -434,7 +434,7 @@ void hal_dcd_isr(uint8_t rhport) { // Note: Host may delay more than 3 ms before and/or after bus reset before doing enumeration.
if ((lpc_usb->DEVICEADDR >> 25) & 0x0f)
{
- event.event_id = DCD_EVENT_SUSPENDED;
+ dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_SUSPENDED };
dcd_event_handler(&event, true);
}
}
@@ -445,7 +445,7 @@ void hal_dcd_isr(uint8_t rhport) // {
// if ( !(lpc_usb->PORTSC1_D & PORTSC_CURRENT_CONNECT_STATUS_MASK) )
// {
-// event.event_id = DCD_EVENT_UNPLUGGED;
+// dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_UNPLUGGED };
// dcd_event_handler(&event, true);
// }
// }
@@ -463,7 +463,7 @@ void hal_dcd_isr(uint8_t rhport) // 23.10.10.2 Operational model for setup transfers
lpc_usb->ENDPTSETUPSTAT = lpc_usb->ENDPTSETUPSTAT;// acknowledge
- event.event_id = DCD_EVENT_SETUP_RECEIVED;
+ dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_SETUP_RECEIVED };
event.setup_received = p_dcd->qhd[0].setup_request;
dcd_event_handler(&event, true);
@@ -480,10 +480,10 @@ void hal_dcd_isr(uint8_t rhport) if ( p_qtd->int_on_complete )
{
- bool succeeded = ( p_qtd->xact_err || p_qtd->halted || p_qtd->buffer_err ) ? false : true;
- (void) succeeded;
+ uint8_t result = p_qtd->halted ? DCD_XFER_STALLED :
+ ( p_qtd->xact_err ||p_qtd->buffer_err ) ? DCD_XFER_FAILED : DCD_XFER_SUCCESS;
- dcd_control_complete(rhport, p_qtd->expected_bytes - p_qtd->total_bytes);
+ dcd_event_xfer_complete(rhport, 0, p_qtd->expected_bytes - p_qtd->total_bytes, result, true);
}
}
@@ -496,7 +496,7 @@ void hal_dcd_isr(uint8_t rhport) if (int_status & INT_MASK_SOF)
{
- event.event_id = DCD_EVENT_SOF;
+ dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_SOF };
dcd_event_handler(&event, true);
}
|
