diff options
| author | Reinhard Panhuber <[email protected]> | 2021-01-09 12:10:08 +0100 |
|---|---|---|
| committer | Reinhard Panhuber <[email protected]> | 2021-01-09 12:10:08 +0100 |
| commit | 485d8fa77e6a7691db77d92a18a70a834c540734 (patch) | |
| tree | 562644b90b6581d74719e60f0b7007654b487a87 /src/device | |
| parent | 09d8ead4b86049260dd6ee7e61d137b6bdccaa28 (diff) | |
| parent | cfcffe94ce62f5ef1fb5aef4641924d64dc4b1c0 (diff) | |
Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer
Diffstat (limited to 'src/device')
| -rw-r--r-- | src/device/usbd.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c index 55e76bb66..05acb7019 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -1103,6 +1103,24 @@ bool usbd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const * desc_ep) { TU_LOG2(" Open EP %02X with Size = %u\r\n", desc_ep->bEndpointAddress, desc_ep->wMaxPacketSize.size); + if (TUSB_XFER_ISOCHRONOUS == desc_ep->bmAttributes.xfer) + { + TU_ASSERT(desc_ep->wMaxPacketSize.size <= (_usbd_dev.speed == TUSB_SPEED_HIGH ? 1024 : 1023)); + } + else + { + uint16_t const max_epsize = (_usbd_dev.speed == TUSB_SPEED_HIGH ? 512 : 64); + + if (TUSB_XFER_BULK == desc_ep->bmAttributes.xfer) + { + // Bulk must be EXACTLY 512/64 bytes + TU_ASSERT(desc_ep->wMaxPacketSize.size == max_epsize); + }else + { + TU_ASSERT(desc_ep->wMaxPacketSize.size <= max_epsize); + } + } + return dcd_edpt_open(rhport, desc_ep); } |
