aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/patch_realtek.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index bdea95aee448..4d3a6f05c703 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -847,9 +847,13 @@ static void alc_set_input_pin(struct hda_codec *codec, hda_nid_t nid,
847 847
848 if (auto_pin_type <= AUTO_PIN_FRONT_MIC) { 848 if (auto_pin_type <= AUTO_PIN_FRONT_MIC) {
849 unsigned int pincap; 849 unsigned int pincap;
850 unsigned int oldval;
851 oldval = snd_hda_codec_read(codec, nid, 0,
852 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
850 pincap = snd_hda_query_pin_caps(codec, nid); 853 pincap = snd_hda_query_pin_caps(codec, nid);
851 pincap = (pincap & AC_PINCAP_VREF) >> AC_PINCAP_VREF_SHIFT; 854 pincap = (pincap & AC_PINCAP_VREF) >> AC_PINCAP_VREF_SHIFT;
852 if (pincap & AC_PINCAP_VREF_80) 855 /* if the default pin setup is vref50, we give it priority */
856 if ((pincap & AC_PINCAP_VREF_80) && oldval != PIN_VREF50)
853 val = PIN_VREF80; 857 val = PIN_VREF80;
854 else if (pincap & AC_PINCAP_VREF_50) 858 else if (pincap & AC_PINCAP_VREF_50)
855 val = PIN_VREF50; 859 val = PIN_VREF50;
@@ -10406,7 +10410,8 @@ static struct alc_config_preset alc882_presets[] = {
10406 * Pin config fixes 10410 * Pin config fixes
10407 */ 10411 */
10408enum { 10412enum {
10409 PINFIX_ABIT_AW9D_MAX 10413 PINFIX_ABIT_AW9D_MAX,
10414 PINFIX_PB_M5210,
10410}; 10415};
10411 10416
10412static struct alc_pincfg alc882_abit_aw9d_pinfix[] = { 10417static struct alc_pincfg alc882_abit_aw9d_pinfix[] = {
@@ -10416,13 +10421,22 @@ static struct alc_pincfg alc882_abit_aw9d_pinfix[] = {
10416 { } 10421 { }
10417}; 10422};
10418 10423
10424static const struct hda_verb pb_m5210_verbs[] = {
10425 { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF50 },
10426 {}
10427};
10428
10419static const struct alc_fixup alc882_fixups[] = { 10429static const struct alc_fixup alc882_fixups[] = {
10420 [PINFIX_ABIT_AW9D_MAX] = { 10430 [PINFIX_ABIT_AW9D_MAX] = {
10421 .pins = alc882_abit_aw9d_pinfix 10431 .pins = alc882_abit_aw9d_pinfix
10422 }, 10432 },
10433 [PINFIX_PB_M5210] = {
10434 .verbs = pb_m5210_verbs
10435 },
10423}; 10436};
10424 10437
10425static struct snd_pci_quirk alc882_fixup_tbl[] = { 10438static struct snd_pci_quirk alc882_fixup_tbl[] = {
10439 SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210),
10426 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), 10440 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
10427 {} 10441 {}
10428}; 10442};