sound/hda/codecs/cirrus/cs420x.c | 1 + 1 file changed, 1 insertion(+)
The 21.5" Retina 4K iMac (Late 2015, DMI product name "iMac16,1") ships
with a Cirrus Logic CS4208 codec wired to an external speaker amplifier
enabled through codec GPIO0 -- the same arrangement as the late-2013
MacBookPro 11,x. Without a matching entry in cs4208_mac_fixup_tbl[] the
fixup picker logs:
snd_hda_codec_cs420x hdaudioC1D0: CS4208: picked fixup for codec SSID 106b:0000
i.e. an empty fixup name, GPIO0 stays low, the external amp is never
powered up, and the internal speakers are silent on a stock kernel.
The codec SSID reported by hardware is 0x106b:0x7f00. Reusing CS4208_MBP11
(GPIO0 + SPDIF switch fixup) makes the internal speakers and S/PDIF
output work out of the box, removing the need for users to set
`options snd_hda_intel model=mbp11` via /etc/modprobe.d/.
Tested on iMac16,1 (kernel 6.17.0): four internal drivers
(Left tweeter, Left woofer, Right tweeter, Right woofer, exposed as the
4 channels of the analog-surround-40 ALSA profile) produce audio after
the fixup is applied.
Signed-off-by: Jakub Pisarczyk <pisarz77@gmail.com>
---
sound/hda/codecs/cirrus/cs420x.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/hda/codecs/cirrus/cs420x.c b/sound/hda/codecs/cirrus/cs420x.c
--- a/sound/hda/codecs/cirrus/cs420x.c
+++ b/sound/hda/codecs/cirrus/cs420x.c
@@ -582,6 +582,7 @@ static const struct hda_quirk cs4208_mac_fixup_tbl[] = {
SND_PCI_QUIRK(0x106b, 0x7200, "MacBookAir 6,2", CS4208_MBA6),
SND_PCI_QUIRK(0x106b, 0x7800, "MacPro 6,1", CS4208_MACMINI),
SND_PCI_QUIRK(0x106b, 0x7b00, "MacBookPro 12,1", CS4208_MBP11),
+ SND_PCI_QUIRK(0x106b, 0x7f00, "iMac 16,1", CS4208_MBP11),
{} /* terminator */
};
--
2.43.0
On Tue, 26 May 2026 22:18:30 +0200, Jakub Pisarczyk wrote: > > The 21.5" Retina 4K iMac (Late 2015, DMI product name "iMac16,1") ships > with a Cirrus Logic CS4208 codec wired to an external speaker amplifier > enabled through codec GPIO0 -- the same arrangement as the late-2013 > MacBookPro 11,x. Without a matching entry in cs4208_mac_fixup_tbl[] the > fixup picker logs: > > snd_hda_codec_cs420x hdaudioC1D0: CS4208: picked fixup for codec SSID 106b:0000 > > i.e. an empty fixup name, GPIO0 stays low, the external amp is never > powered up, and the internal speakers are silent on a stock kernel. > > The codec SSID reported by hardware is 0x106b:0x7f00. Reusing CS4208_MBP11 > (GPIO0 + SPDIF switch fixup) makes the internal speakers and S/PDIF > output work out of the box, removing the need for users to set > `options snd_hda_intel model=mbp11` via /etc/modprobe.d/. > > Tested on iMac16,1 (kernel 6.17.0): four internal drivers > (Left tweeter, Left woofer, Right tweeter, Right woofer, exposed as the > 4 channels of the analog-surround-40 ALSA profile) produce audio after > the fixup is applied. > > Signed-off-by: Jakub Pisarczyk <pisarz77@gmail.com> Applied now. Thanks. Takashi
© 2016 - 2026 Red Hat, Inc.