In addition to the Linux 6.18 kernel bringing initial bindings for writing Rust USB drivers, the main USB/Thunderbolt subsystem updates for Linux 6.18 brought a variety of other enhancements.
As covered last month on Phoronix, the USB subsystem in Linux 6.18 is receiving the Intel “USBIO” USB IO expander drivers for supporting the web cameras on newer Intel laptop models. The USB IO expander drivers are used by MIPI cameras on various Intel Meteor Lake and newer Core Ultra powered laptops.
Also notable for USB in Linux 6.18 is a patch series from Google for supporting system sleep with offloaded USB transfers. The merge explains:
“Wesley Cheng and Mathias Nyman’s USB offload design enables a co-processor to handle some USB transfers, potentially allowing the system to sleep (suspend-to-RAM) and save power. However, Linux’s System Sleep model halts the USB host controller when the main system isn’t managing any USB transfers. To address this, the proposal modifies the system to recognize offloaded USB transfers and manage power accordingly. This way, offloaded USB transfers could still happen during system sleep (Suspend-to-RAM).
This involves two key steps:
1. Transfer Status Tracking: Propose offload_usage and corresponding apis drivers could track USB transfers on the co-processor, ensuring the system is aware of any ongoing activity.
2. Power Management Adjustment: Modifications to the USB driver stack (xhci host controller driver, and USB device drivers) allow the system to sleep (Suspend-to-RAM) without disrupting co-processor managed USB transfers. This involves adding conditional checks to bypass some power management operations in the System Sleep model.”
The Linux 6.18 USB pull also added Renesas RZ/G3E USB3 Host driver support, SpacemiT K1 USB3.0 host controller support, eUSB2 Double Isochronous IN Bandwidth support, and a variety of other small changes.
See the USB pull for the full list of merged changes ahead of Linux 6.18-rc1 coming out on Sunday.