summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorLydia Wang <lydiawang@viatech.com.cn>2011-07-04 16:54:15 +0800
committerTakashi Iwai <tiwai@suse.de>2011-07-04 14:33:23 +0200
commitc4394f5b807289c180a486df70c1a9b1f192f1cb (patch)
treee105a741d5187ce062743aa68a75b6dd68263777 /sound
parente5e14681404ec27a422d635284bf564dabde3f81 (diff)
downloadlinux-3.10-c4394f5b807289c180a486df70c1a9b1f192f1cb.tar.gz
linux-3.10-c4394f5b807289c180a486df70c1a9b1f192f1cb.tar.bz2
linux-3.10-c4394f5b807289c180a486df70c1a9b1f192f1cb.zip
ALSA: hda - Fix issue that front can't output sound for VT1718S
For VT1718S, Mixer 9 doesn't expose the connection to DAC 0. So when building up a 'PCM Playback' amplifier control, it will fail since getting DAC 0 index of Mixer 9 returned -1. So I added a dac_mixer_idx to indicated the actual index of DAC 0 to Mixer 9. Following is the patch and next mail is another. Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_via.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index bbbc4f4cbf1..89dd29db97e 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -130,6 +130,7 @@ struct via_spec {
hda_nid_t hp_dac_nid;
bool hp_indep_shared; /* indep HP-DAC is shared with side ch */
int num_active_streams;
+ int dac_mixer_idx;
struct nid_path out_path[4];
struct nid_path hp_path;
@@ -1810,6 +1811,8 @@ static int via_auto_create_multi_out_ctls(struct hda_codec *codec)
idx = get_connection_index(codec, spec->aa_mix_nid,
spec->multiout.dac_nids[0]);
+ if (idx < 0 && spec->dac_mixer_idx)
+ idx = spec->dac_mixer_idx;
if (idx >= 0) {
/* add control to mixer */
err = via_add_control(spec, VIA_CTL_WIDGET_VOL,
@@ -2959,6 +2962,7 @@ static int patch_vt1718S(struct hda_codec *codec)
spec->aa_mix_nid = 0x21;
override_mic_boost(codec, 0x2b, 0, 3, 40);
override_mic_boost(codec, 0x29, 0, 3, 40);
+ spec->dac_mixer_idx = 5;
/* automatic parse from the BIOS config */
err = via_parse_auto_config(codec);