diff --git a/drivers/usb/xhcid/src/xhci/scheme.rs b/drivers/usb/xhcid/src/xhci/scheme.rs index 11b6e1e788..e51ba78cb7 100644 --- a/drivers/usb/xhcid/src/xhci/scheme.rs +++ b/drivers/usb/xhcid/src/xhci/scheme.rs @@ -1419,7 +1419,11 @@ impl Xhci { let endp_num_xhc = Self::endp_num_to_dci(endp_num, endp_desc); - let usb_log_max_streams = endp_desc.log_max_streams(); + let usb_log_max_streams = if self.quirks.contains(crate::xhci::quirks::XhciQuirks::BROKEN_STREAMS) { + None // BROKEN_STREAMS: skip stream context array allocation entirely + } else { + endp_desc.log_max_streams() + }; // TODO: Secondary streams. let primary_streams = if let Some(log_max_streams) = usb_log_max_streams {