ALSA: hda/realtek - Fix the wrong offset for two-speaker systems

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>
This commit is contained in:
Takashi Iwai 2012-02-21 12:37:00 +01:00
parent 689cabf6d0
commit f568291ef5

View File

@ -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;