summaryrefslogtreecommitdiff
path: root/src/device/usbd.c
diff options
context:
space:
mode:
authorhathach <[email protected]>2021-01-08 22:34:36 +0700
committerhathach <[email protected]>2021-01-08 22:34:36 +0700
commit6e6e6265e4feb797ddbd835dc1bee865d04219e6 (patch)
treeb2d1009368cfc9c2a0a0999b869fa22cf51eba95 /src/device/usbd.c
parentfb896be201602ce38105a934d3a59886b46d1268 (diff)
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);
}