mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-31 05:52:55 +08:00
Merge pull request #2463 from kasjer/kasjer/nrf5x-isoout-corruption-detection
nrf5x: Handle ISOOUT CRC errors
This commit is contained in:
commit
65e60f3123
@ -653,7 +653,11 @@ void dcd_int_handler(uint8_t rhport)
|
||||
if (NRF_USBD->EPOUTEN & USBD_EPOUTEN_ISOOUT_Msk)
|
||||
{
|
||||
iso_enabled = true;
|
||||
xact_out_dma(EP_ISO_NUM);
|
||||
// Transfer from endpoint to RAM only if data is not corrupted
|
||||
if ((int_status & USBD_INTEN_USBEVENT_Msk) == 0 ||
|
||||
(NRF_USBD->EVENTCAUSE & USBD_EVENTCAUSE_ISOOUTCRC_Msk) == 0) {
|
||||
xact_out_dma(EP_ISO_NUM);
|
||||
}
|
||||
}
|
||||
|
||||
// ISOIN: Notify client that data was transferred
|
||||
@ -683,7 +687,7 @@ void dcd_int_handler(uint8_t rhport)
|
||||
{
|
||||
TU_LOG(2, "EVENTCAUSE = 0x%04lX\r\n", NRF_USBD->EVENTCAUSE);
|
||||
|
||||
enum { EVT_CAUSE_MASK = USBD_EVENTCAUSE_SUSPEND_Msk | USBD_EVENTCAUSE_RESUME_Msk | USBD_EVENTCAUSE_USBWUALLOWED_Msk };
|
||||
enum { EVT_CAUSE_MASK = USBD_EVENTCAUSE_SUSPEND_Msk | USBD_EVENTCAUSE_RESUME_Msk | USBD_EVENTCAUSE_USBWUALLOWED_Msk | USBD_EVENTCAUSE_ISOOUTCRC_Msk };
|
||||
uint32_t const evt_cause = NRF_USBD->EVENTCAUSE & EVT_CAUSE_MASK;
|
||||
NRF_USBD->EVENTCAUSE = evt_cause; // clear interrupt
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user