diff options
-rw-r--r-- | sound/pci/hda/patch_cirrus.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c index 036056c42c13..0e99357e822c 100644 --- a/sound/pci/hda/patch_cirrus.c +++ b/sound/pci/hda/patch_cirrus.c | |||
@@ -79,6 +79,7 @@ enum { | |||
79 | CS420X_MBP53, | 79 | CS420X_MBP53, |
80 | CS420X_MBP55, | 80 | CS420X_MBP55, |
81 | CS420X_IMAC27, | 81 | CS420X_IMAC27, |
82 | CS420X_IMAC27_122, | ||
82 | CS420X_APPLE, | 83 | CS420X_APPLE, |
83 | CS420X_AUTO, | 84 | CS420X_AUTO, |
84 | CS420X_MODELS | 85 | CS420X_MODELS |
@@ -1290,6 +1291,7 @@ static const char * const cs420x_models[CS420X_MODELS] = { | |||
1290 | [CS420X_MBP53] = "mbp53", | 1291 | [CS420X_MBP53] = "mbp53", |
1291 | [CS420X_MBP55] = "mbp55", | 1292 | [CS420X_MBP55] = "mbp55", |
1292 | [CS420X_IMAC27] = "imac27", | 1293 | [CS420X_IMAC27] = "imac27", |
1294 | [CS420X_IMAC27_122] = "imac27_122", | ||
1293 | [CS420X_APPLE] = "apple", | 1295 | [CS420X_APPLE] = "apple", |
1294 | [CS420X_AUTO] = "auto", | 1296 | [CS420X_AUTO] = "auto", |
1295 | }; | 1297 | }; |
@@ -1306,6 +1308,7 @@ static const struct snd_pci_quirk cs420x_cfg_tbl[] = { | |||
1306 | }; | 1308 | }; |
1307 | 1309 | ||
1308 | static const struct snd_pci_quirk cs420x_codec_cfg_tbl[] = { | 1310 | static const struct snd_pci_quirk cs420x_codec_cfg_tbl[] = { |
1311 | SND_PCI_QUIRK(0x106b, 0x2000, "iMac 12,2", CS420X_IMAC27_122), | ||
1309 | SND_PCI_QUIRK_VENDOR(0x106b, "Apple", CS420X_APPLE), | 1312 | SND_PCI_QUIRK_VENDOR(0x106b, "Apple", CS420X_APPLE), |
1310 | {} /* terminator */ | 1313 | {} /* terminator */ |
1311 | }; | 1314 | }; |
@@ -1405,6 +1408,12 @@ static int patch_cs420x(struct hda_codec *codec) | |||
1405 | spec->gpio_mask = spec->gpio_dir = | 1408 | spec->gpio_mask = spec->gpio_dir = |
1406 | spec->gpio_eapd_hp | spec->gpio_eapd_speaker; | 1409 | spec->gpio_eapd_hp | spec->gpio_eapd_speaker; |
1407 | break; | 1410 | break; |
1411 | case CS420X_IMAC27_122: | ||
1412 | spec->gpio_eapd_hp = 4; /* GPIO2 = headphones */ | ||
1413 | spec->gpio_eapd_speaker = 8; /* GPIO3 = speakers */ | ||
1414 | spec->gpio_mask = spec->gpio_dir = | ||
1415 | spec->gpio_eapd_hp | spec->gpio_eapd_speaker; | ||
1416 | break; | ||
1408 | } | 1417 | } |
1409 | 1418 | ||
1410 | err = cs_parse_auto_config(codec); | 1419 | err = cs_parse_auto_config(codec); |