summaryrefslogtreecommitdiff
path: root/src/device/usbd.c
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2023-02-28 23:45:02 +0700
committerGitHub <[email protected]>2023-02-28 23:45:02 +0700
commit3c38c7dc2562b8c4e7aefd91e41c51b5b1bfda70 (patch)
tree46b54ae6bc0ba27a1e8875db32c906684e457247 /src/device/usbd.c
parent65ac519715ea0ecace08b183f2d8730d0450affd (diff)
parentffdc100cb90eefd13da77a478527ea25d982416c (diff)
Merge pull request #1828 from HiFiPhile/stm32_fsdev
stm32_fsdev & ISO EP buffer allocation improvements
Diffstat (limited to 'src/device/usbd.c')
-rw-r--r--src/device/usbd.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 384daccb8..7733cc2e2 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -1382,4 +1382,31 @@ void usbd_sof_enable(uint8_t rhport, bool en)
dcd_sof_enable(rhport, en);
}
+bool usbd_edpt_iso_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t largest_packet_size)
+{
+ rhport = _usbd_rhport;
+
+ TU_ASSERT(dcd_edpt_iso_alloc);
+ TU_ASSERT(tu_edpt_number(ep_addr) < CFG_TUD_ENDPPOINT_MAX);
+
+ return dcd_edpt_iso_alloc(rhport, ep_addr, largest_packet_size);
+}
+
+bool usbd_edpt_iso_activate(uint8_t rhport, tusb_desc_endpoint_t const * desc_ep)
+{
+ rhport = _usbd_rhport;
+
+ uint8_t const epnum = tu_edpt_number(desc_ep->bEndpointAddress);
+ uint8_t const dir = tu_edpt_dir(desc_ep->bEndpointAddress);
+
+ TU_ASSERT(dcd_edpt_iso_activate);
+ TU_ASSERT(epnum < CFG_TUD_ENDPPOINT_MAX);
+ TU_ASSERT(tu_edpt_validate(desc_ep, (tusb_speed_t) _usbd_dev.speed));
+
+ _usbd_dev.ep_status[epnum][dir].stalled = false;
+ _usbd_dev.ep_status[epnum][dir].busy = false;
+ _usbd_dev.ep_status[epnum][dir].claimed = false;
+ return dcd_edpt_iso_activate(rhport, desc_ep);
+}
+
#endif