diff options
| author | Jerzy Kasenberg <[email protected]> | 2022-01-20 09:58:40 +0100 |
|---|---|---|
| committer | Jerzy Kasenberg <[email protected]> | 2022-01-20 16:28:09 +0100 |
| commit | 7b078367e82fae8ef4ec094f6db9e584db82f06a (patch) | |
| tree | 56762d989b7ed6e3df9c36021d489fc4eeb99549 /src | |
| parent | ae4d901d8351437c499cecef349b84af4bb6c239 (diff) | |
dcd_da1469x: Re-enable RX after resume
Going to suspend states disable reception on non-0 RX endpoints.
Now when USB resume condition is detected, all RX endpoints
with pending transfers are resumed.
Diffstat (limited to 'src')
| -rw-r--r-- | src/portable/dialog/da146xx/dcd_da146xx.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/portable/dialog/da146xx/dcd_da146xx.c b/src/portable/dialog/da146xx/dcd_da146xx.c index 5713f5cca..02fad8165 100644 --- a/src/portable/dialog/da146xx/dcd_da146xx.c +++ b/src/portable/dialog/da146xx/dcd_da146xx.c @@ -733,6 +733,15 @@ static void handle_alt_ev(void) set_nfsr(NFSR_NODE_OPERATIONAL); USB->USB_ALTMSK_REG = USB_USB_ALTMSK_REG_USB_M_RESET_Msk | USB_USB_ALTMSK_REG_USB_M_SD3_Msk; + // Re-enable reception of endpoint with pending transfer + for (int epnum = 1; epnum <= 3; ++epnum) + { + xfer_ctl_t * xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); + if (xfer->total_len > xfer->transferred) + { + start_rx_packet(xfer); + } + } dcd_event_bus_signal(0, DCD_EVENT_RESUME, true); } } |
