summaryrefslogtreecommitdiff
path: root/src/device/usbd.c
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2021-01-08 23:09:18 +0700
committerGitHub <[email protected]>2021-01-08 23:09:18 +0700
commitcfcffe94ce62f5ef1fb5aef4641924d64dc4b1c0 (patch)
treeb360223bbbe1e29fa0c3459ff4a48a496ba134f0 /src/device/usbd.c
parentfb896be201602ce38105a934d3a59886b46d1268 (diff)
parentd33b22d1275683cd352f3d8b729e20e6836c1ea4 (diff)
Merge pull request #588 from hathach/use-dcd_event_bus_reset
use dcd_event_bus_reset() with speed to replace bus_signal
Diffstat (limited to 'src/device/usbd.c')
-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 791d533ae..f6b00563d 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);
}