When the machine has two speakers but wants to put more multi-io jacks, the parser shouldn't consider about the shared DAC but try to assign the individual DACs. Otherwise the channel mapping would be fairly confused and lead to the wrong DACs.
Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_realtek.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index e5c0459..e82911a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3353,7 +3353,11 @@ static int fill_and_eval_dacs(struct hda_codec *codec, } if (cfg->hp_outs && cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { /* try multi-ios with HP + inputs */ - err = alc_auto_fill_multi_ios(codec, cfg->hp_pins[0], false, 1); + int offset = 0; + if (cfg->line_outs >= 3) + offset = 1; + err = alc_auto_fill_multi_ios(codec, cfg->hp_pins[0], false, + offset); if (err < 0) return err; badness += err;