Intel's Rewritten Audio Driver "AVS" Begins Landing In Linux 5.19

Written by Michael Larabel in Intel on 27 May 2022 at 05:46 AM EDT. 5 Comments
INTEL
The sound subsystem updates for the Linux 5.19 kernel include the initial Intel "AVS" sound driver code.

Intel engineers have been working on a new audio DSP / sound driver for Skylake, Kabylake, Apollo Lake, and Amber Lake. After working to improve the existing driver code, the decision was made it's just better writing a new driver instead. Here's the situation summed up in an earlier iteration of the patch series working on the Intel "AVS" sound driver:
A continuation of cleanup work of Intel SST solutions found in sound/soc/intel/. With two major chapters released last year catpt and removal of haswell solution, time has come for Skylake-driver.

Throughout 2019, 2020 and 2021 Skylake-driver has had many fixes applied and even attempts of refactors as seen in fundamental overhaul, IPC flow adjustments and LARGE_CONFIG overhaul series. Unfortunately, story repeats itself - problems are found within the core of a driver. Painting it with different colors does not change the fact that is it still a house of cards. As changes needed to address those issues would make Skylake solution incompatible with its previous revisions, a decision has been made to provide a new solution instead. In time it would deprecate and replace Skylake-driver.

That solution has been called AVS - from AudioDSP architecture name: Audio-Voice-Speech. It is meant to provide support for the exact same range of platforms as its predecessor: SKL, KBL, AML and APL.

Several functions found within HDAudio and ASoC framework have been exported and are re-used later by the avs-driver to prevent code being duplicated in this solution. All of these act as driver dependencies and are found at the beginning of the series to make it clear what's needed for avs-driver to compile.

With Linux 5.19 is the initial Intel Audio-Video-Speech (AVS) sound driver code for those Skylake to Apollo Lake platforms. This driver though is still in its initial stages and hasn't yet deprecated/replaced the existing driver code.


Intel engineers have been working on "AVS" for Skylake era hardware to address existing fundamental driver issues.


The sound pull for Linux 5.19 also has work on a new IPC mechanism for Intel's Sound Open Firmware (SOF) code, continued improvements to the Cirrus HD audio codec driver, a generic serial MIDI driver introduced, and support for various new chips. New hardware support on the sound side with Linux 5.19 includes Analog Devices ADAU1361, Cirrus Logic CS35L45, Maxim MAX98396, MediaTek MT8186, NXP i.MX8 micfil/SAI interfaces, NVIDIA Tegra186 ASRC, and Texas Instruments TAS2764/TAS2780.

And what the heck is a new serial MIDI driver doing for the kernel in 2022? This new generic serial MIDI driver is intended for using serial devices compatible with the serial bus as raw MIDI devices for those devices not compatible with the existing serial-u16550 driver. This driver started out for working on a Raspberry Pi 4 with send/receive raw MIDI in a low-latency manner.

More details on the sound changes for Linux 5.19 via this pull request that was already merged to mainline.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week