diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index ac41e9c..352ccf4 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -1226,7 +1226,9 @@ static int try_assign_dacs(struct hda_codec *codec, int nu } if (!dac) continue; - path = snd_hda_add_new_path(codec, dac, pin, -spec->mixer_nid); + path = snd_hda_add_new_path(codec, dac, pin, + (get_wcaps(codec,pin) & AC_WCAP_STEREO) == 0 ? + spec->mixer_nid : -spec->mixer_nid); if (!path && !i && spec->mixer_nid) { /* try with aamix */ path = snd_hda_add_new_path(codec, dac, pin, 0);