diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-09-30 06:13:44 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-10-13 19:08:34 -0400 |
commit | 22c748d6172867030c228d4737fdef0e9713a125 (patch) | |
tree | f6af1bfebc943850f76837f31c08cec254917312 | |
parent | f60945fd5684f5773efd2d87d383f528056d6285 (diff) |
ALSA: hda - Fix GPIO for Acer Aspire 3830TG
commit 4a4370442c996be0fd08234a167c8a127c2488bb upstream.
Acer Aspire 3830TG seems requiring GPIO bit 0 as the primary mute
control. When a machine is booted after Windows 8, the GPIO pin is
turned off and it results in the silent output.
This patch adds the manual fixup of GPIO bit 0 for this model.
Reported-by: Christopher <DIDI2002@web.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index b314d3e6d7fa..c96e1945059d 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
@@ -3225,6 +3225,7 @@ enum { | |||
3225 | CXT_PINCFG_LEMOTE_A1205, | 3225 | CXT_PINCFG_LEMOTE_A1205, |
3226 | CXT_FIXUP_STEREO_DMIC, | 3226 | CXT_FIXUP_STEREO_DMIC, |
3227 | CXT_FIXUP_INC_MIC_BOOST, | 3227 | CXT_FIXUP_INC_MIC_BOOST, |
3228 | CXT_FIXUP_GPIO1, | ||
3228 | }; | 3229 | }; |
3229 | 3230 | ||
3230 | static void cxt_fixup_stereo_dmic(struct hda_codec *codec, | 3231 | static void cxt_fixup_stereo_dmic(struct hda_codec *codec, |
@@ -3303,6 +3304,15 @@ static const struct hda_fixup cxt_fixups[] = { | |||
3303 | .type = HDA_FIXUP_FUNC, | 3304 | .type = HDA_FIXUP_FUNC, |
3304 | .v.func = cxt5066_increase_mic_boost, | 3305 | .v.func = cxt5066_increase_mic_boost, |
3305 | }, | 3306 | }, |
3307 | [CXT_FIXUP_GPIO1] = { | ||
3308 | .type = HDA_FIXUP_VERBS, | ||
3309 | .v.verbs = (const struct hda_verb[]) { | ||
3310 | { 0x01, AC_VERB_SET_GPIO_MASK, 0x01 }, | ||
3311 | { 0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01 }, | ||
3312 | { 0x01, AC_VERB_SET_GPIO_DATA, 0x01 }, | ||
3313 | { } | ||
3314 | }, | ||
3315 | }, | ||
3306 | }; | 3316 | }; |
3307 | 3317 | ||
3308 | static const struct snd_pci_quirk cxt5051_fixups[] = { | 3318 | static const struct snd_pci_quirk cxt5051_fixups[] = { |
@@ -3312,6 +3322,7 @@ static const struct snd_pci_quirk cxt5051_fixups[] = { | |||
3312 | 3322 | ||
3313 | static const struct snd_pci_quirk cxt5066_fixups[] = { | 3323 | static const struct snd_pci_quirk cxt5066_fixups[] = { |
3314 | SND_PCI_QUIRK(0x1025, 0x0543, "Acer Aspire One 522", CXT_FIXUP_STEREO_DMIC), | 3324 | SND_PCI_QUIRK(0x1025, 0x0543, "Acer Aspire One 522", CXT_FIXUP_STEREO_DMIC), |
3325 | SND_PCI_QUIRK(0x1025, 0x054c, "Acer Aspire 3830TG", CXT_FIXUP_GPIO1), | ||
3315 | SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), | 3326 | SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), |
3316 | SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T410", CXT_PINCFG_LENOVO_TP410), | 3327 | SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T410", CXT_PINCFG_LENOVO_TP410), |
3317 | SND_PCI_QUIRK(0x17aa, 0x215f, "Lenovo T510", CXT_PINCFG_LENOVO_TP410), | 3328 | SND_PCI_QUIRK(0x17aa, 0x215f, "Lenovo T510", CXT_PINCFG_LENOVO_TP410), |