summaryrefslogtreecommitdiff
path: root/src/portable/st
diff options
context:
space:
mode:
authorJerzy Kasenberg <[email protected]>2020-07-31 15:48:28 +0200
committerJerzy Kasenberg <[email protected]>2020-07-31 15:52:21 +0200
commitc3b0389f10188e016c0cd0bb74638ecfb0eae8ea (patch)
tree5cc6360f53c01f01ee213a7b24cc951a0321ddf6 /src/portable/st
parent22100b252fc2eb8f51ed407949645653c4880fd9 (diff)
Fix synopsys size check for ISO endpoint
Constraint was incorrect for ISO endpoint as stated in TODO.
Diffstat (limited to 'src/portable/st')
-rw-r--r--src/portable/st/synopsys/dcd_synopsys.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/portable/st/synopsys/dcd_synopsys.c b/src/portable/st/synopsys/dcd_synopsys.c
index 03c33c598..f4430f582 100644
--- a/src/portable/st/synopsys/dcd_synopsys.c
+++ b/src/portable/st/synopsys/dcd_synopsys.c
@@ -514,8 +514,14 @@ bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const * desc_edpt)
TU_ASSERT(epnum < EP_MAX);
- // TODO ISO endpoint can be up to 1024 bytes
- TU_ASSERT(desc_edpt->wMaxPacketSize.size <= (get_speed(rhport) == TUSB_SPEED_HIGH ? 512 : 64));
+ if (desc_edpt->bmAttributes.xfer == TUSB_XFER_ISOCHRONOUS)
+ {
+ TU_ASSERT(desc_edpt->wMaxPacketSize.size <= (get_speed(rhport) == TUSB_SPEED_HIGH ? 1024 : 1023));
+ }
+ else
+ {
+ TU_ASSERT(desc_edpt->wMaxPacketSize.size <= (get_speed(rhport) == TUSB_SPEED_HIGH ? 512 : 64));
+ }
xfer_ctl_t * xfer = XFER_CTL_BASE(epnum, dir);
xfer->max_size = desc_edpt->wMaxPacketSize.size;