Commit 140547ef authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda/realtek - Improve the signel-connection check

When the connections from the pin selector contain only two
widgets, a route to DAC and the aa-mixer, it's certainly a
single connection.  In such a case, get_dac_if_single() should
return the connected DAC, too.

This will improve the detection of the individual DAC
assignment for each pin.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 00bc0ce9
...@@ -2972,8 +2972,12 @@ static bool alc_auto_is_dac_reachable(struct hda_codec *codec, ...@@ -2972,8 +2972,12 @@ static bool alc_auto_is_dac_reachable(struct hda_codec *codec,
static hda_nid_t get_dac_if_single(struct hda_codec *codec, hda_nid_t pin) static hda_nid_t get_dac_if_single(struct hda_codec *codec, hda_nid_t pin)
{ {
struct alc_spec *spec = codec->spec;
hda_nid_t sel = alc_go_down_to_selector(codec, pin); hda_nid_t sel = alc_go_down_to_selector(codec, pin);
if (snd_hda_get_conn_list(codec, sel, NULL) == 1) hda_nid_t srcs[5];
int num = snd_hda_get_connections(codec, sel, srcs,
ARRAY_SIZE(srcs));
if (num == 1 || (num == 2 && srcs[1] == spec->mixer_nid))
return alc_auto_look_for_dac(codec, pin); return alc_auto_look_for_dac(codec, pin);
return 0; return 0;
} }
......
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