Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Intel's Rewritten Audio Driver "AVS" Begins Landing In Linux 5.19
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.