News: 0001628015

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux 7.1 Sound Code Adds Bus Keepers: Aiming For Better Apple Silicon Support

([Multimedia] 5 Hours Ago Linux 7.1 Sound)


The sound subsystem changes were merged this week for Linux 7.1 that include some new hardware support and other useful additions.

First up with the new sound code for Linxu 7.1 is on the ASoC side adding support for bus keepers, which will be used by Apple Silicon sound drivers in the future on Linux. Open-source developer James Calligero explained of this support for configuring bus keepers in [1]the patch series :

"This series introduces some infrastructure to allow platform drivers to specify what a DAI should be doing when it is not active on the bus. The primary use case for this is configuring bus keepers which may be integrated into various codecs. The instigating use case for this functionality is an interesting bus topology on Apple Silicon laptops with multiple codecs.

Most Apple Silicon laptops have six codecs split into groups of three, driving a pair of dual opposed woofers and a tweeter for L/R stereo sound. These codecs report the voltage and current across their connected voice coils back to the SoC via the SDOUT pin, represented as PCM data sent via configurable TDM slots. This data is used in conjunction with the connected speaker's Thiele/Small Parameters to ensure that the speaker is not being driven to levels that would permanently damage them. This is integrated into CoreAudio on macOS. speakersafetyd handles this for Linux.

All of the codec SDOUT pins are attached to a single receiver port on the SoC's I2S peripheral, however are split across two physical data lines (one each for the left and right codec groups). The receiver has an OR gate in front of it, which is used to sum the two lines.

If at any point a codec is trying to transmit data, and the "opposite" line ends up floating high, the transmitting codec's data will be corrupted. We need to guarantee that the idle line stays idle.

In the downstream Asahi Linux kernel, we set up one codec in each group to zero-fill or pull down its line while a codec on the opposite line is actively transmitting. This is done entirely in the codec driver, however this approach is over-fit for this one use case. This sort of functionality may also be of use for other hardware, so following previous mailing list discussions, I have tried to expose the functionality in a more configurable and generic way.

I have integrated this approach into our downstream platform driver and select Devicetrees as an example of how this mechanism is intended to be used."

In addition to that bus keeper support, the Linux 7.1 sound pull brings support for AMD Raphael DMIC, Cirrus Logic CS42L43 and CS47L47, and NVIDIA machines with CPCAP and WM8962.

Linux 7.1 also has USB audio quirks for benefiting the Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, and Scarlett 18i20. Various Lenovo, HP, Acer, and ASUS systems also have HD audio quirks for fixing various problems.

This sound pull also is what brings [2]suspend/resume support for old legacy ISA drivers like AMD InterWave. From legacy ISA to Apple Silicon updates in the same pull in 2026!

The full list of merged sound changes can be found via the [3]pull request that is already merged to Linux Git.



[1] https://lore.kernel.org/all/20260301-tdm-idle-slots-v3-0-c6ac5351489a@gmail.com/

[2] https://www.phoronix.com/news/AMD-InterWave-2026-Linux-

[3] https://lore.kernel.org/lkml/87o6jkfm0y.wl-tiwai@suse.de/



All I need to have a good time,
Is a reefer, a woman and a bottle of wine.
With those three things I don't need no sunshine,
A reefer, a woman and a bottle of wine.

All I want is to never grow old,
I want to wash in a bathtub of gold.
I want 97 kilos already rolled,
I want to wash in a bathtub of gold.

I want to light my cigars with 10 dollar bills,
I like to have a cattle ranch in Beverly Hills.
I want a bottle of Red Eye that's always filled,
I like to have a cattle ranch in Beverly Hills.
-- Country Joe and the Fish, "Zachariah"