Commit cd511556 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Initialize DACs in ALC662 auto-parser mode

The initialization of DACs was missing in ALC662 parser code.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent bb8bf4d4
......@@ -18970,26 +18970,38 @@ static void alc662_auto_set_output_and_unmute(struct hda_codec *codec,
hda_nid_t dac)
{
int i, num;
hda_nid_t mix;
hda_nid_t srcs[HDA_MAX_CONNECTIONS];
alc_set_pin_output(codec, nid, pin_type);
nid = alc_go_down_to_selector(codec, nid);
num = snd_hda_get_connections(codec, nid, srcs, ARRAY_SIZE(srcs));
for (i = 0; i < num; i++) {
if (alc_auto_mix_to_dac(codec, srcs[i]) != dac)
continue;
/* need the manual connection? */
if (num > 1)
snd_hda_codec_write(codec, nid, 0,
AC_VERB_SET_CONNECT_SEL, i);
/* unmute mixer widget inputs */
snd_hda_codec_write(codec, srcs[i], 0,
AC_VERB_SET_AMP_GAIN_MUTE,
AMP_IN_UNMUTE(0));
snd_hda_codec_write(codec, srcs[i], 0,
AC_VERB_SET_AMP_GAIN_MUTE,
AMP_IN_UNMUTE(1));
return;
mix = srcs[i];
break;
}
if (!mix)
return;
/* need the manual connection? */
if (num > 1)
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, i);
/* unmute mixer widget inputs */
snd_hda_codec_write(codec, mix, 0, AC_VERB_SET_AMP_GAIN_MUTE,
AMP_IN_UNMUTE(0));
snd_hda_codec_write(codec, mix, 0, AC_VERB_SET_AMP_GAIN_MUTE,
AMP_IN_UNMUTE(1));
/* initialize volume */
if (query_amp_caps(codec, dac, HDA_OUTPUT) & AC_AMPCAP_NUM_STEPS)
nid = dac;
else if (query_amp_caps(codec, mix, HDA_OUTPUT) & AC_AMPCAP_NUM_STEPS)
nid = mix;
else
return;
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE,
AMP_OUT_ZERO);
}
static void alc662_auto_init_multi_out(struct hda_codec *codec)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment