Skip to content

Commit

Permalink
ALSA: hda/cirrus - support for iMac12,2 model
Browse files Browse the repository at this point in the history
This early 2011 model just need to have headphones on GPI02
instead of GPI01, and use BIOS pincfgs.
It is detected by codec SSID.
The iMac12,1 model is known to work the same way, although maybe
not with the same codec SSID.

Signed-off-by: Jérémy Lal <kapouer@melix.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Jérémy Lal authored and Takashi Iwai committed Jan 9, 2012
1 parent f16c2cc commit 7e5bea1
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions sound/pci/hda/patch_cirrus.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ enum {
CS420X_MBP53,
CS420X_MBP55,
CS420X_IMAC27,
CS420X_IMAC27_122,
CS420X_APPLE,
CS420X_AUTO,
CS420X_MODELS
Expand Down Expand Up @@ -1290,6 +1291,7 @@ static const char * const cs420x_models[CS420X_MODELS] = {
[CS420X_MBP53] = "mbp53",
[CS420X_MBP55] = "mbp55",
[CS420X_IMAC27] = "imac27",
[CS420X_IMAC27_122] = "imac27_122",
[CS420X_APPLE] = "apple",
[CS420X_AUTO] = "auto",
};
Expand All @@ -1306,6 +1308,7 @@ static const struct snd_pci_quirk cs420x_cfg_tbl[] = {
};

static const struct snd_pci_quirk cs420x_codec_cfg_tbl[] = {
SND_PCI_QUIRK(0x106b, 0x2000, "iMac 12,2", CS420X_IMAC27_122),
SND_PCI_QUIRK_VENDOR(0x106b, "Apple", CS420X_APPLE),
{} /* terminator */
};
Expand Down Expand Up @@ -1405,6 +1408,12 @@ static int patch_cs420x(struct hda_codec *codec)
spec->gpio_mask = spec->gpio_dir =
spec->gpio_eapd_hp | spec->gpio_eapd_speaker;
break;
case CS420X_IMAC27_122:
spec->gpio_eapd_hp = 4; /* GPIO2 = headphones */
spec->gpio_eapd_speaker = 8; /* GPIO3 = speakers */
spec->gpio_mask = spec->gpio_dir =
spec->gpio_eapd_hp | spec->gpio_eapd_speaker;
break;
}

err = cs_parse_auto_config(codec);
Expand Down

0 comments on commit 7e5bea1

Please sign in to comment.