
Erster USB-Audio-Offloading-Code für Linux 6.16 integriert
Am Freitag wurden über den USB/Thunderbolt-Zweig umfangreiche Patches (mehr als 12.000 Zeilen Code) für die USB-Offload-Unterstützung von Audiogeräten in den Linux 6.16-Kernel integriert.
Eine Übersetzung von 🇬🇧 Phoronix.com
Diese Arbeit war das große Unterfangen von Qualcomm, USB-Audio-Offloading zu unterstützen, um zumindest ihre SoCs mit einem Audio-DSP zu unterstützen, der die Verantwortung für die Ausgabe von Übertragungen an den USB-Host-Controller übernehmen kann, um Systemressourcen freizugeben. Es dauerte Jahre und mehr als 30 Runden der Codeüberprüfung, bis dieser USB-Audio-Offloading-Code in den Mainline-Linux-Kernel aufgenommen werden konnte.
Bei Qualcomm-Hardware, bei der das USB-Audio auf einen dedizierten Audio-DSP ausgelagert werden kann, der die Übertragungen an den USB-Host-Controller vornimmt, entlastet dies die Haupt-CPU-Kerne und kann bei der Energieverwaltung helfen, so dass diese CPU-Kerne einen niedrigeren Energiezustand erreichen oder andere Aufgaben übernehmen können. Es bleibt zu hoffen, dass andere Hardwarehersteller bei der Unterstützung des USB-Audio-Offloads nachziehen werden.
USB-Subsystem-Maintainer Greg Kroah-Hartman fasste es in der USB-Pull-Anfrage wie folgt zusammen:
USB-Offload-Unterstützung für Audiogeräte. Ich glaube, dies ist der Rekord für die meisten Patch-Serien (30+) über den längsten Zeitraum (2+ Jahre), um richtig zusammengeführt zu werden. Ein großes Lob geht an Wesley Cheng, der dieses Projekt durchgebracht hat. Er hat ein großes, aus dem Baum herausgehacktes Monstrum genommen, das von mehreren Herstellern für ihre spezifischen Geräte erstellt wurde, hat es zu einem halbwegs kohärenten Satz von Änderungen zusammengeführt und alle wichtigen Subsysteme dazu gebracht, sich darauf zu einigen, wie dies implementiert werden sollte, sowohl mit Änderungen an ihrem Code als auch an den Userspace-Apis, UND er hat die Hardwarefirmen dazu gebracht, dem zuzustimmen, obwohl sie alle ihre Arbeit, die sie bereits in ihren privaten Gerätebäumen gemacht hatten, wiederholen mussten.
Diese Funktion bietet erhebliche Energieeinsparungen bei eingebetteten Geräten, bei denen ein USB-Audiostrom weiter fließen kann, während der Rest des Systems schläft, etwas, das für Geräte, die mit Batteriestrom betrieben werden, sehr wichtig ist. Es gibt noch einige kleinere Verbesserungen, die hier vorgenommen werden müssen, und diese Patches werden noch von den verschiedenen Hardwarefirmen geprüft und diskutiert, aber dies ist ein großer Schritt nach vorne und ein großartiges Beispiel dafür, wie man Upstream-Entwicklung gut macht.
Die USB-Updates für Linux 6.16 haben auch einige sehr alte Treiber entrümpelt, um den Kernel um etwa 11k Zeilen Code zu entlasten, so dass sich die Dinge mit dem gesamten neuen USB-Audio-Code ausgleichen.
Ein Service von s3n🧩net
Comments