diff options
| author | majbthrd <[email protected]> | 2020-01-15 10:28:49 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-01-15 10:28:49 -0600 |
| commit | 906471a487e02531b60fbd7ce1abdf3cb6a618f5 (patch) | |
| tree | c47858ca2120d434c132a362e49057b241e3d7dc | |
| parent | 1210beb9063c5234b9d730089dcaa8cc3b2edd9c (diff) | |
| parent | 7f2db321bf8e1f97d4759cf2efef0f684a461916 (diff) | |
Merge pull request #271 from majbthrd/nucoutmps
nuc121: fix handling of OUT transfers larger than max packet size
| -rw-r--r-- | src/portable/nuvoton/nuc121/dcd_nuc121.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/portable/nuvoton/nuc121/dcd_nuc121.c b/src/portable/nuvoton/nuc121/dcd_nuc121.c index afe2cf001..237a5fd9a 100644 --- a/src/portable/nuvoton/nuc121/dcd_nuc121.c +++ b/src/portable/nuvoton/nuc121/dcd_nuc121.c @@ -395,9 +395,11 @@ void USBD_IRQHandler(void) xfer->remaining_bytes -= available_bytes;
xfer->data_ptr += available_bytes;
- /* when the transfer is finished, alert TinyUSB */
+ /* when the transfer is finished, alert TinyUSB; otherwise, accept more data */
if ( (0 == xfer->remaining_bytes) || (available_bytes < xfer->max_packet_size) )
- dcd_event_xfer_complete(0, ep_addr, available_bytes, XFER_RESULT_SUCCESS, true);
+ dcd_event_xfer_complete(0, ep_addr, xfer->total_bytes, XFER_RESULT_SUCCESS, true);
+ else if (xfer->remaining_bytes)
+ ep->MXPLD = xfer->max_packet_size;
}
else
{
|
