aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-03-06 10:58:17 -0500
committerTakashi Iwai <tiwai@suse.de>2008-04-24 06:00:22 -0400
commit7194cae62e92c5db8b87df1120fbf24f83f488f8 (patch)
tree3cf33a5856d8ef43a1df23f343a8faa661857c32 /sound/pci
parent487145a1984b78e9b194aa44f8079cc019779a58 (diff)
[ALSA] hda-codec - Fix dmics on ALC268 in auto configuration
Fixed the handling of dmics on ALC268 in the auto-configuration mode. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c27
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 }