aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorDylan Reid <dgreid@chromium.org>2013-04-05 17:58:22 -0400
committerTakashi Iwai <tiwai@suse.de>2013-04-07 03:42:40 -0400
commit423970042e0710cdb4f7135f1ed614b956239a91 (patch)
tree1a8dd22dd385e442ddf800bca71840ba343aefc9 /sound/pci/hda/patch_realtek.c
parent4af161072cf5ef19ef9e9db0edef61322ee82c63 (diff)
ALSA: hda/realtek - Add a quirk for AC700 Chromebook.
Correct pin configs for the Acer AC700. Most importantly indicate that SPDIF is connected, it routes to HDMI out. Similar to Aspire models, chain in the DMIC fixup and allow it to be applied to this codec (ALC269VB) as well. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 1bd2d49194e7..145d078c9341 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2617,7 +2617,8 @@ static void alc271_fixup_dmic(struct hda_codec *codec,
2617 }; 2617 };
2618 unsigned int cfg; 2618 unsigned int cfg;
2619 2619
2620 if (strcmp(codec->chip_name, "ALC271X")) 2620 if (strcmp(codec->chip_name, "ALC271X") &&
2621 strcmp(codec->chip_name, "ALC269VB"))
2621 return; 2622 return;
2622 cfg = snd_hda_codec_get_pincfg(codec, 0x12); 2623 cfg = snd_hda_codec_get_pincfg(codec, 0x12);
2623 if (get_defcfg_connect(cfg) == AC_JACK_PORT_FIXED) 2624 if (get_defcfg_connect(cfg) == AC_JACK_PORT_FIXED)
@@ -2838,6 +2839,7 @@ enum {
2838 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, 2839 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT,
2839 ALC271_FIXUP_AMIC_MIC2, 2840 ALC271_FIXUP_AMIC_MIC2,
2840 ALC271_FIXUP_HP_GATE_MIC_JACK, 2841 ALC271_FIXUP_HP_GATE_MIC_JACK,
2842 ALC269_FIXUP_ACER_AC700,
2841}; 2843};
2842 2844
2843static const struct hda_fixup alc269_fixups[] = { 2845static const struct hda_fixup alc269_fixups[] = {
@@ -3010,6 +3012,19 @@ static const struct hda_fixup alc269_fixups[] = {
3010 .chained = true, 3012 .chained = true,
3011 .chain_id = ALC271_FIXUP_AMIC_MIC2, 3013 .chain_id = ALC271_FIXUP_AMIC_MIC2,
3012 }, 3014 },
3015 [ALC269_FIXUP_ACER_AC700] = {
3016 .type = HDA_FIXUP_PINS,
3017 .v.pins = (const struct hda_pintbl[]) {
3018 { 0x12, 0x99a3092f }, /* int-mic */
3019 { 0x14, 0x99130110 }, /* speaker */
3020 { 0x18, 0x03a11c20 }, /* mic */
3021 { 0x1e, 0x0346101e }, /* SPDIF1 */
3022 { 0x21, 0x0321101f }, /* HP out */
3023 { }
3024 },
3025 .chained = true,
3026 .chain_id = ALC271_FIXUP_DMIC,
3027 },
3013}; 3028};
3014 3029
3015static const struct snd_pci_quirk alc269_fixup_tbl[] = { 3030static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -3034,6 +3049,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
3034 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 3049 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
3035 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), 3050 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO),
3036 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), 3051 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
3052 SND_PCI_QUIRK(0x1025, 0x047c, "Acer AC700", ALC269_FIXUP_ACER_AC700),
3037 SND_PCI_QUIRK(0x1025, 0x0740, "Acer AO725", ALC271_FIXUP_HP_GATE_MIC_JACK), 3053 SND_PCI_QUIRK(0x1025, 0x0740, "Acer AO725", ALC271_FIXUP_HP_GATE_MIC_JACK),
3038 SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK), 3054 SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK),
3039 SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC), 3055 SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC),