Ecosyste.ms sponsors
An open API service aggregating public data about GitHub Sponsors.
An open API service aggregating public data about GitHub Sponsors.
Funding Links: https://github.com/sponsors/povik
Hi! I am Martin and recently I have been reverse-engineering and writing Linux drivers for audio hardware on Apple Silicon Macs. This ties into the greater Asahi Linux effort of turning the new Apple machines into a platform with good upstream Linux support.
Having audio support on these machines is a matter of couple of Linux drivers working together. If I were to give a list of open tasks in getting the audio support in shape, it would be this: (feel free to skip over)
Add audio capture (as opposed to audio playback) support to Audio DMA Controller driver, and upstream the driver. done!
Polish and add audio capture support to done! MCA driver (this driver takes role of what the ASoC subsystem calls a platform driver), and upstream itdone!.
Figure out an ASoC machine driver that will cover all the configurations of speakers and codecs found on Apple Silicon machines. progress being made This will either be one of the generic drivers already in Linux with some extendingruled out, or a new driver written for Apple Silicon machineswork-in-progress.
Reverse engineer the specifics of how the AOP co-processor manages the embedded microphones on MacBooks and iMacs. done! Either write a driver that learns to coexist with the AOP, or bypass the AOP and use the MCA and ADMAC drivers directly on the underlying SoC peripherals.
Reverse engineer a register map and write a driver for the CS42L84 codec found on 2021 MacBook Pros, done! and upstream a driver. In case of that particular codec we are out of luck with finding an equivalent public part whose Linux driver, or at least a datasheet, we could re-use. For other codecs on the Macs there were prior compatible Linux drivers or in case of the SSM3515 on iMacs there is a datasheet.
Write a Linux driver for the Analog Devices' SSM3515 speaker amp for speaker support on the M1 iMac done!.
Prepare profile configurations for userspace audio libraries/daemons so that they can work well on the platform. See what macOS does with the multispeaker setups so that it can inform our treatment of the speakers on Linux systems.
Reverse engineer and write drivers for audio over HDMI. That is independent of supporting the other audio paths. working prototype
(audio support TODO updated in July 2023)
I am gradually chipping off from the tasks above, jointly with other people working on Asahi Linux. Having a level of sponsorship for it makes it much easier. Many thanks to all who decide to contribute!
Martin
--
For more information see the latest Asahi Linux progress report or feel free to get in touch on Asahi Linux IRC channels where I use the 'povik' handle.