From cecbe082ff5505b69cd4cc7138a4275d7af4aa8a Mon Sep 17 00:00:00 2001 From: elagil Date: Sun, 16 Mar 2025 16:34:09 +0100 Subject: [PATCH] fix: only ISO EP is always double buffered --- embassy-stm32/src/usb/usb.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/embassy-stm32/src/usb/usb.rs b/embassy-stm32/src/usb/usb.rs index c00c88215..8dabfc78f 100644 --- a/embassy-stm32/src/usb/usb.rs +++ b/embassy-stm32/src/usb/usb.rs @@ -363,10 +363,11 @@ impl<'d, T: Instance> Driver<'d, T> { return false; // reserved for control pipe } let used = ep.used_out || ep.used_in; - if used && (ep.ep_type == EndpointType::Isochronous || ep.ep_type == EndpointType::Bulk) { - // Isochronous and bulk endpoints are double-buffered. + if used && (ep.ep_type == EndpointType::Isochronous) { + // Isochronous endpoints are always double-buffered. // Their corresponding endpoint/channel registers are forced to be unidirectional. // Do not reuse this index. + // FIXME: Bulk endpoints can be double buffered, but are not in the current implementation. return false; }