diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-11-23 02:34:13 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-11-23 02:37:32 -0500 |
commit | ffe4d12b151018e831f0ca2e05fe78a55238c517 (patch) | |
tree | d85f1ce9cc36755511d1821b616ee4b01c551355 /sound/pci | |
parent | 98415eacb35df0ebce6b9b2d52af1af66ee0b72f (diff) |
ALSA: hda - Add a fixup for internal mic on MacBook Pro 8,1
The internal mic on MBP81 gives only the right channel, and the left
channel is static. Add a verb to fix the ADC2 channel mode to expand
mono right to stereo.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=50781
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_cirrus.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c index 6e1e711585ff..a2537b2f8724 100644 --- a/sound/pci/hda/patch_cirrus.c +++ b/sound/pci/hda/patch_cirrus.c | |||
@@ -85,6 +85,7 @@ enum { | |||
85 | CS420X_GPIO_13, | 85 | CS420X_GPIO_13, |
86 | CS420X_GPIO_23, | 86 | CS420X_GPIO_23, |
87 | CS420X_MBP101, | 87 | CS420X_MBP101, |
88 | CS420X_MBP81, | ||
88 | CS420X_AUTO, | 89 | CS420X_AUTO, |
89 | /* aliases */ | 90 | /* aliases */ |
90 | CS420X_IMAC27_122 = CS420X_GPIO_23, | 91 | CS420X_IMAC27_122 = CS420X_GPIO_23, |
@@ -1294,6 +1295,7 @@ static const struct hda_model_fixup cs420x_models[] = { | |||
1294 | { .id = CS420X_IMAC27_122, .name = "imac27_122" }, | 1295 | { .id = CS420X_IMAC27_122, .name = "imac27_122" }, |
1295 | { .id = CS420X_APPLE, .name = "apple" }, | 1296 | { .id = CS420X_APPLE, .name = "apple" }, |
1296 | { .id = CS420X_MBP101, .name = "mbp101" }, | 1297 | { .id = CS420X_MBP101, .name = "mbp101" }, |
1298 | { .id = CS420X_MBP81, .name = "mbp81" }, | ||
1297 | {} | 1299 | {} |
1298 | }; | 1300 | }; |
1299 | 1301 | ||
@@ -1306,6 +1308,7 @@ static const struct snd_pci_quirk cs420x_fixup_tbl[] = { | |||
1306 | /*SND_PCI_QUIRK(0x8086, 0x7270, "IMac 27 Inch", CS420X_IMAC27),*/ | 1308 | /*SND_PCI_QUIRK(0x8086, 0x7270, "IMac 27 Inch", CS420X_IMAC27),*/ |
1307 | 1309 | ||
1308 | /* codec SSID */ | 1310 | /* codec SSID */ |
1311 | SND_PCI_QUIRK(0x106b, 0x1c00, "MacBookPro 8,1", CS420X_MBP81), | ||
1309 | SND_PCI_QUIRK(0x106b, 0x2000, "iMac 12,2", CS420X_IMAC27_122), | 1312 | SND_PCI_QUIRK(0x106b, 0x2000, "iMac 12,2", CS420X_IMAC27_122), |
1310 | SND_PCI_QUIRK(0x106b, 0x2800, "MacBookPro 10,1", CS420X_MBP101), | 1313 | SND_PCI_QUIRK(0x106b, 0x2800, "MacBookPro 10,1", CS420X_MBP101), |
1311 | SND_PCI_QUIRK_VENDOR(0x106b, "Apple", CS420X_APPLE), | 1314 | SND_PCI_QUIRK_VENDOR(0x106b, "Apple", CS420X_APPLE), |
@@ -1418,6 +1421,17 @@ static const struct hda_fixup cs420x_fixups[] = { | |||
1418 | .chained = true, | 1421 | .chained = true, |
1419 | .chain_id = CS420X_GPIO_13, | 1422 | .chain_id = CS420X_GPIO_13, |
1420 | }, | 1423 | }, |
1424 | [CS420X_MBP81] = { | ||
1425 | .type = HDA_FIXUP_VERBS, | ||
1426 | .v.verbs = (const struct hda_verb[]) { | ||
1427 | /* internal mic ADC2: right only, single ended */ | ||
1428 | {0x11, AC_VERB_SET_COEF_INDEX, IDX_ADC_CFG}, | ||
1429 | {0x11, AC_VERB_SET_PROC_COEF, 0x102a}, | ||
1430 | {} | ||
1431 | }, | ||
1432 | .chained = true, | ||
1433 | .chain_id = CS420X_GPIO_13, | ||
1434 | }, | ||
1421 | }; | 1435 | }; |
1422 | 1436 | ||
1423 | static int patch_cs420x(struct hda_codec *codec) | 1437 | static int patch_cs420x(struct hda_codec *codec) |