diff options
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 41bcbfd10598..c67c32faa903 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -6258,16 +6258,21 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) | |||
6258 | 6258 | ||
6259 | for (i = 0; i < AUTO_PIN_LAST; i++) { | 6259 | for (i = 0; i < AUTO_PIN_LAST; i++) { |
6260 | hda_nid_t nid = spec->autocfg.input_pins[i]; | 6260 | hda_nid_t nid = spec->autocfg.input_pins[i]; |
6261 | if (alc882_is_input_pin(nid)) { | 6261 | unsigned int vref; |
6262 | snd_hda_codec_write(codec, nid, 0, | 6262 | if (!nid) |
6263 | AC_VERB_SET_PIN_WIDGET_CONTROL, | 6263 | continue; |
6264 | i <= AUTO_PIN_FRONT_MIC ? | 6264 | vref = PIN_IN; |
6265 | PIN_VREF80 : PIN_IN); | 6265 | if (1 /*i <= AUTO_PIN_FRONT_MIC*/) { |
6266 | if (nid != ALC882_PIN_CD_NID) | 6266 | if (snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP) & |
6267 | snd_hda_codec_write(codec, nid, 0, | 6267 | AC_PINCAP_VREF_80) |
6268 | AC_VERB_SET_AMP_GAIN_MUTE, | 6268 | vref = PIN_VREF80; |
6269 | AMP_OUT_MUTE); | ||
6270 | } | 6269 | } |
6270 | snd_hda_codec_write(codec, nid, 0, | ||
6271 | AC_VERB_SET_PIN_WIDGET_CONTROL, vref); | ||
6272 | if (get_wcaps(codec, nid) & AC_WCAP_OUT_AMP) | ||
6273 | snd_hda_codec_write(codec, nid, 0, | ||
6274 | AC_VERB_SET_AMP_GAIN_MUTE, | ||
6275 | AMP_OUT_MUTE); | ||
6271 | } | 6276 | } |
6272 | } | 6277 | } |
6273 | 6278 | ||
@@ -10125,6 +10130,10 @@ static int alc268_auto_create_analog_input_ctls(struct alc_spec *spec, | |||
10125 | case 0x1c: | 10130 | case 0x1c: |
10126 | idx1 = 3; /* CD */ | 10131 | idx1 = 3; /* CD */ |
10127 | break; | 10132 | break; |
10133 | case 0x12: | ||
10134 | case 0x13: | ||
10135 | idx1 = 6; /* digital mics */ | ||
10136 | break; | ||
10128 | default: | 10137 | default: |
10129 | continue; | 10138 | continue; |
10130 | } | 10139 | } |