From 7b1655f5f21a9bd1eb8b478c5dab9b83de809edc Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Thu, 14 Jul 2011 15:31:21 +0200
Subject: [PATCH] ALSA: hda - Re-add need_dac_fix check for multi-io jacks of Realtek codecs
Git-commit: 7b1655f5f21a9bd1eb8b478c5dab9b83de809edc
Patch-mainline: 3.1-rc2
Refernces: FATE#314106,FATE#314311,FATE#313695

During the rewrite, the check of spec->need_dac_fix and the corresponding
num_dacs change was dropped from the channel-mode control.

This patch re-adds it, and also enables need_dac_fix for ALC880 as default,
as this feature was originally introduced to fix h/w bugs of this chip.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

---
 sound/pci/hda/patch_realtek.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3206,6 +3206,8 @@ static int alc_auto_ch_mode_put(struct s
 	for (i = 0; i < spec->multi_ios; i++)
 		alc_set_multi_io(codec, i, i < ch);
 	spec->multiout.max_channels = spec->ext_channel_count;
+	if (spec->need_dac_fix && !spec->const_channel_count)
+		spec->multiout.num_dacs = spec->multiout.max_channels / 2;
 	return 1;
 }
 
@@ -3652,6 +3654,7 @@ static int patch_alc880(struct hda_codec
 	codec->spec = spec;
 
 	spec->mixer_nid = 0x0b;
+	spec->need_dac_fix = 1;
 
 	board_config = alc_board_config(codec, ALC880_MODEL_LAST,
 					alc880_models, alc880_cfg_tbl);
