Merged on Friday to the Linux 6.16 kernel by way of the USB/Thunderbolt branch was the massive set of patches (12k+ lines of code) for USB offload support for audio devices.
This work was the massive undertaking by Qualcomm to support USB audio offloading to benefit at least their SoCs with an audio DSP that can take responsibility for issuing transfers to the USB host controller to free up system resources. This USB audio offloading code to get to the mainline Linux kernel took years and 30+ rounds of code review.
For Qualcomm hardware where the USB audio can be offloaded to a dedicated audio DSP for handling the transfers to the USB host controller, this lessens the work of the main CPU cores and can help with power management so those CPU cores can hit lower power states or tackle other work. Other hardware vendors will hopefully follow suit in their support for the upstream support around USB audio offloading.
USB subsystem maintainer Greg Kroah-Hartman summed it up in the USB pull request as:
“USB offload support for audio devices. I think this takes the record for the most number of patch series (30+) over the longest period of time (2+ years) to get merged properly. Many props go to Wesley Cheng for seeing this effort through, they took a major out-of-tree hacked-up-monstrosity that was created by multiple vendors for their specific devices, got it all merged into a semi-coherent set of changes, and got all of the different major subsystems to agree on how this should be implemented both with changes to their code as well as userspace apis, AND wrangled the hardware companies into agreeing to go forward with this, despite making them all redo work they had already done in their private device trees. This feature offers major power savings on embedded devices where a USB audio stream can continue to flow while the rest of the system is sleeping, something that devices running on battery power really care about. There are still some more small tweaks left to be done here, and those patches are still out for review and arguing among the different hardware companies, but this is a major step forward and a great example of how to do upstream development well.”
The USB updates for Linux 6.16 also cleared out some very old driver code to lighten the kernel by some 11k lines of code, so it balances things out with all of the new USB audio code merged.