diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-11-06 05:25:34 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-11-06 05:25:34 -0500 |
commit | 43dea228a3ba5463392281535dfb3d3fe56f4c2c (patch) | |
tree | 1dc1396cb1ed3add3ba94aa9f01a6bad332c5d79 /sound/pci | |
parent | 447c6f93aba42e6889be55a614d4dddc25f17863 (diff) |
ALSA: hda - Fix silent output regression with ALC861
The 3.1 kernel has a regression for ALC861 codec where no sound output
is heard with the default setup. It's because the amps in DACs aren't
properly unmuted while the output mixers are assigned only to pins.
This patch fixes the missing initialization of DACs when no mixer is
assigned to them.
Tested-by: Andrea Iob <andrea_iob@yahoo.it>
Cc: <stable@kernel.org> [v3.1+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 80d6add8a620..9693059dec84 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -3329,6 +3329,12 @@ static void alc_auto_set_output_and_unmute(struct hda_codec *codec, | |||
3329 | if (nid) | 3329 | if (nid) |
3330 | snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, | 3330 | snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, |
3331 | AMP_OUT_ZERO); | 3331 | AMP_OUT_ZERO); |
3332 | |||
3333 | /* unmute DAC if it's not assigned to a mixer */ | ||
3334 | nid = alc_look_for_out_mute_nid(codec, pin, dac); | ||
3335 | if (nid == mix && nid_has_mute(codec, dac, HDA_OUTPUT)) | ||
3336 | snd_hda_codec_write(codec, dac, 0, AC_VERB_SET_AMP_GAIN_MUTE, | ||
3337 | AMP_OUT_ZERO); | ||
3332 | } | 3338 | } |
3333 | 3339 | ||
3334 | static void alc_auto_init_multi_out(struct hda_codec *codec) | 3340 | static void alc_auto_init_multi_out(struct hda_codec *codec) |