The upcoming Linux 7.4 kernel release is set to improve audio support and address power management issues on Apple Silicon Macs. Developer James Calligeros has submitted patches to utilize shared GPIO infrastructure, resolving challenges with the audio implementation of Apple’s M-series SoCs.
The core issue stems from how Apple Silicon handles speaker codec shutdown pins. According to Calligeros, “On Apple Silicon Macs, every speaker codec's software shutdown pin is connected to the same GPIO line. This line must be pulled high whenever any codec asserts it so.” This setup creates an “impossible” power management scenario because the first suspended or resumed codec dictates the GPIO line’s state, disrupting subsequent codecs.
Previously, the Asahi Linux project circumvented this problem by repurposing the regulator API. This involved replacing the shutdown-gpios property in the codec Devicetree nodes with a virtual regulator that acted as a proxy for the GPIO line, ensuring the pin remained off until all consumers were ready. However, with the introduction of shared GPIO support in the kernel, this workaround is no longer necessary.
The new shared GPIO infrastructure allows the first state change of a line to be considered the “default” state, which can be asserted without unanimous agreement. The patches submitted by Calligeros enable shared GPIO for ARCH_APPLE, allowing the system to take advantage of this new infrastructure. Currently, the TAS2764 and TAS2770 drivers initialize the shutdown GPIO high, meaning the first change will be to low. The patches are queued for submission to the Linux 7.4 kernel cycle.
Read the original coverage
💬 Comments
📜 Comment Policy