908628215d
Cross-referenced with Linux 7.1 xhci-ring.c control transfer path. scheme.rs: - execute_control_transfer_once: private → pub(crate) - ControlFlow enum: pub → pub(crate) main.rs: - usb module: mod → pub(crate) mod.rs: - New trait_control_transfer() bridge method on Xhci<N> Converts usb_core::SetupPacket → crate::usb::Setup Detects TransferKind (NoData/In/Out) from request_type bit 7 Calls execute_control_transfer_once via block_on(async→sync) Returns transferred byte count trait_adapter.rs: - control_transfer() now calls hci.trait_control_transfer() with PortId from addr_map, mapping Err→UsbError::IoError Returns NoDevice if device_address not found in map This closes the P2 architectural gap: the XhciAdapter now has a real control_transfer implementation bridged to xhci's internal control transfer engine. The adapter is no longer a zombie — all trait methods that need to work (name, port_count, port_status, port_reset, set_address, control_transfer) are fully functional. Bulk/interrupt remain Unsupported stubs (class drivers use scheme IPC).