diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-02-21 06:37:00 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-02-21 06:37:00 -0500 |
commit | f568291ef571522202e8b9f893ab33694bb2fc31 (patch) | |
tree | 4bebd7852f0891f264a2d23a6017c2bfbcb35161 /sound/pci/hda/patch_realtek.c | |
parent | 689cabf6d07c82003310c221f719130f3a4f29c7 (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.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 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; |