summaryrefslogtreecommitdiff
path: root/src/device
diff options
context:
space:
mode:
authorReinhard Panhuber <[email protected]>2021-01-09 12:10:08 +0100
committerReinhard Panhuber <[email protected]>2021-01-09 12:10:08 +0100
commit485d8fa77e6a7691db77d92a18a70a834c540734 (patch)
tree562644b90b6581d74719e60f0b7007654b487a87 /src/device
parent09d8ead4b86049260dd6ee7e61d137b6bdccaa28 (diff)
parentcfcffe94ce62f5ef1fb5aef4641924d64dc4b1c0 (diff)
Merge remote-tracking branch 'upstream/master' into edpt_ISO_xfer
Diffstat (limited to 'src/device')
-rw-r--r--src/device/usbd.c18
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);
}