diff --git a/local/docs/IMPROVEMENT-PLAN.md b/local/docs/IMPROVEMENT-PLAN.md index ab373a0a4c..2870b7503a 100644 --- a/local/docs/IMPROVEMENT-PLAN.md +++ b/local/docs/IMPROVEMENT-PLAN.md @@ -135,17 +135,11 @@ fn grow_event_ring(&mut self) { } ``` -### 3.2 xhcid: Fix BOS descriptor fetching +### 3.2 xhcid: Fix BOS descriptor fetching ✅ ALREADY IMPLEMENTED (2026-07-08) -**File**: `xhci/scheme.rs:1900-1905` -**Severity**: HIGH — USB 3.x devices not correctly detected +**File**: `xhci/scheme.rs:1911-1914` -```rust -//TODO let (bos_desc, bos_data) = self.fetch_bos_desc(port_id, slot).await?; -let supports_superspeed = false; -``` - -BOS descriptor is commented out. USB 3.x devices are treated as USB 2.0. **Cross-reference**: Linux 7.1 `drivers/usb/core/config.c:387-420` — calls `usb_get_bos_descriptor()` and parses USB 3.0 capability descriptors. +`fetch_bos_desc()` is implemented in `xhci/mod.rs:197-213` and called from `get_desc()` at scheme.rs:1911. The result is parsed via `usb::bos_capability_descs()` to detect SuperSpeed and SuperSpeedPlus support. USB 3.x devices are correctly identified. ### 3.3 xhcid: Enforce critical runtime quirks ✅ ALREADY IMPLEMENTED (2026-07-08)