aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-07-14 09:31:21 -0400
committerTakashi Iwai <tiwai@suse.de>2011-07-14 09:33:59 -0400
commit7b1655f5f21a9bd1eb8b478c5dab9b83de809edc (patch)
tree2b319bebe17729c238df16f82489a18ce6503566
parentcf01b73e26a8e93b46cf0b8ae878206277fb8838 (diff)
ALSA: hda - Re-add need_dac_fix check for multi-io jacks of Realtek codecs
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>
-rw-r--r--sound/pci/hda/patch_realtek.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 124c63f4c457..52ce07534e5b 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3196,6 +3196,8 @@ static int alc_auto_ch_mode_put(struct snd_kcontrol *kcontrol,
3196 for (i = 0; i < spec->multi_ios; i++) 3196 for (i = 0; i < spec->multi_ios; i++)
3197 alc_set_multi_io(codec, i, i < ch); 3197 alc_set_multi_io(codec, i, i < ch);
3198 spec->multiout.max_channels = spec->ext_channel_count; 3198 spec->multiout.max_channels = spec->ext_channel_count;
3199 if (spec->need_dac_fix && !spec->const_channel_count)
3200 spec->multiout.num_dacs = spec->multiout.max_channels / 2;
3199 return 1; 3201 return 1;
3200} 3202}
3201 3203
@@ -3642,6 +3644,7 @@ static int patch_alc880(struct hda_codec *codec)
3642 codec->spec = spec; 3644 codec->spec = spec;
3643 3645
3644 spec->mixer_nid = 0x0b; 3646 spec->mixer_nid = 0x0b;
3647 spec->need_dac_fix = 1;
3645 3648
3646 board_config = alc_board_config(codec, ALC880_MODEL_LAST, 3649 board_config = alc_board_config(codec, ALC880_MODEL_LAST,
3647 alc880_models, alc880_cfg_tbl); 3650 alc880_models, alc880_cfg_tbl);