aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-02-21 06:37:00 -0500
committerTakashi Iwai <tiwai@suse.de>2012-02-21 06:37:00 -0500
commitf568291ef571522202e8b9f893ab33694bb2fc31 (patch)
tree4bebd7852f0891f264a2d23a6017c2bfbcb35161 /sound/pci/hda/patch_realtek.c
parent689cabf6d07c82003310c221f719130f3a4f29c7 (diff)
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>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index e5c04593d360..e82911ab0f8c 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,
3353 } 3353 }
3354 if (cfg->hp_outs && cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { 3354 if (cfg->hp_outs && cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) {
3355 /* try multi-ios with HP + inputs */ 3355 /* try multi-ios with HP + inputs */
3356 err = alc_auto_fill_multi_ios(codec, cfg->hp_pins[0], false, 1); 3356 int offset = 0;
3357 if (cfg->line_outs >= 3)
3358 offset = 1;
3359 err = alc_auto_fill_multi_ios(codec, cfg->hp_pins[0], false,
3360 offset);
3357 if (err < 0) 3361 if (err < 0)
3358 return err; 3362 return err;
3359 badness += err; 3363 badness += err;