ALSA: hda - Move default input-src selection to init part
authorTakashi Iwai <tiwai@suse.de>
Thu, 10 Mar 2011 13:11:59 +0000 (14:11 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 14 Mar 2011 14:02:37 +0000 (15:02 +0100)
Move the default input-src selection code for alc268/269 to the init
part instead of the parser.  The input-src selection might be overwritten
by init verbs.

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

index dcc455f..11a1380 100644 (file)
@@ -13758,6 +13758,7 @@ static int alc268_parse_auto_config(struct hda_codec *codec)
 }
 
 #define alc268_auto_init_analog_input  alc882_auto_init_analog_input
+#define alc268_auto_init_input_src     alc882_auto_init_input_src
 
 /* init callback for auto-configuration model -- overriding the default init */
 static void alc268_auto_init(struct hda_codec *codec)
@@ -13767,6 +13768,7 @@ static void alc268_auto_init(struct hda_codec *codec)
        alc268_auto_init_hp_out(codec);
        alc268_auto_init_mono_speaker_out(codec);
        alc268_auto_init_analog_input(codec);
+       alc268_auto_init_input_src(codec);
        alc_auto_init_digital(codec);
        if (spec->unsol_event)
                alc_inithook(codec);
@@ -14074,13 +14076,6 @@ static int patch_alc268(struct hda_codec *codec)
                        spec->num_adc_nids = ARRAY_SIZE(alc268_adc_nids);
                        add_mixer(spec, alc268_capture_mixer);
                }
-               /* set default input source */
-               for (i = 0; i < spec->num_adc_nids; i++)
-                       snd_hda_codec_write_cache(codec, alc268_capsrc_nids[i],
-                               0, AC_VERB_SET_CONNECT_SEL,
-                               i < spec->num_mux_defs ?
-                               spec->input_mux[i].items[0].index :
-                               spec->input_mux->items[0].index);
        }
 
        spec->vmaster_nid = 0x02;
@@ -14769,11 +14764,6 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
                fillup_priv_adc_nids(codec, alc269_adc_candidates,
                                     sizeof(alc269_adc_candidates));
 
-       /* set default input source */
-       if (!spec->dual_adc_switch)
-               select_or_unmute_capsrc(codec, spec->capsrc_nids[0],
-                                       spec->input_mux->items[0].index);
-
        err = alc_auto_add_mic_boost(codec);
        if (err < 0)
                return err;
@@ -14787,6 +14777,7 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
 #define alc269_auto_init_multi_out     alc268_auto_init_multi_out
 #define alc269_auto_init_hp_out                alc268_auto_init_hp_out
 #define alc269_auto_init_analog_input  alc882_auto_init_analog_input
+#define alc269_auto_init_input_src     alc882_auto_init_input_src
 
 
 /* init callback for auto-configuration model -- overriding the default init */
@@ -14796,6 +14787,8 @@ static void alc269_auto_init(struct hda_codec *codec)
        alc269_auto_init_multi_out(codec);
        alc269_auto_init_hp_out(codec);
        alc269_auto_init_analog_input(codec);
+       if (!spec->dual_adc_switch)
+               alc269_auto_init_input_src(codec);
        alc_auto_init_digital(codec);
        if (spec->unsol_event)
                alc_inithook(codec);