From https://github.com/chadmed/asahi-audio
> ASoC exposes the speaker array as six independent drivers - two woofers and a tweeter each for Left and Right. We want userspace to see this as a standard stereo speaker pair. The configuration fragment shipped in this package sets up a virtual sink that takes a stereo input and routes it appropriately to each driver.
> We then run into another issue - the speakers sound awful. Turns out Macs aren't magic, they sound good because Apple invest a lot of engineering effort into DSP. Apple actually handle this with odd bespoke Core Audio plugins. We use PipeWire's convolver plugin to apply impulse responses to each driver, which effectively EQs the output signals.
> The kernel driver currently makes no effort to diminish your ability to destroy your machine through misconfigured settings in userspace
This is what I find quite unacceptable from a design PoV, this kind of safety should be as close to the kernel as possible.
The Asahi team do say there will be a basic level of safety implemented in the kernel like this:
> some kind of “safety watchdog interlock” with the kernel that only enables higher volume limits when the daemon is active and running
This sounds like a limitation derived from ancient architectures and platforms. What's the barrier to allowing FP in kernel modules for platforms that are guaranteed to have FP support? Is it too much work for the kernel to save and restore FP registers and modes?