ALSA: hda/realtek - Fix the wrong offset for two-speaker systems
authorTakashi Iwai <tiwai@suse.de>
Tue, 21 Feb 2012 11:37:00 +0000 (12:37 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 21 Feb 2012 11:37:00 +0000 (12:37 +0100)
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

index e5c0459..e82911a 100644 (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;