ALSA: hda - Fix ALC269 capture source
authorTakashi Iwai <tiwai@suse.de>
Thu, 21 Aug 2008 14:25:07 +0000 (16:25 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 25 Aug 2008 07:57:44 +0000 (09:57 +0200)
ALC269 capture source wasn't properly set up.
It's an independent MUX (0x23), not a source of ADC.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/pci/hda/patch_realtek.c

index 9cb6b73..f204936 100644 (file)
@@ -11042,6 +11042,14 @@ static hda_nid_t alc269_adc_nids[1] = {
        0x08,
 };
 
+static hda_nid_t alc269_capsrc_nids[1] = {
+       0x23,
+};
+
+/* NOTE: ADC2 (0x07) is connected from a recording *MIXER* (0x24),
+ *       not a mux!
+ */
+
 static struct hda_input_mux alc269_eeepc_dmic_capture_source = {
        .num_items = 2,
        .items = {
@@ -11424,6 +11432,10 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
        spec->init_verbs[spec->num_init_verbs++] = alc269_init_verbs;
        spec->num_mux_defs = 1;
        spec->input_mux = &spec->private_imux;
+       /* set default input source */
+       snd_hda_codec_write_cache(codec, alc269_capsrc_nids[0],
+                                 0, AC_VERB_SET_CONNECT_SEL,
+                                 spec->input_mux->items[0].index);
 
        err = alc_auto_add_mic_boost(codec);
        if (err < 0)
@@ -11556,6 +11568,7 @@ static int patch_alc269(struct hda_codec *codec)
 
        spec->adc_nids = alc269_adc_nids;
        spec->num_adc_nids = ARRAY_SIZE(alc269_adc_nids);
+       spec->capsrc_nids = alc269_capsrc_nids;
 
        codec->patch_ops = alc_patch_ops;
        if (board_config == ALC269_AUTO)