aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-08-23 06:36:28 -0400
committerTakashi Iwai <tiwai@suse.de>2011-08-23 06:36:28 -0400
commit675c1aa3c4a7290e537e854d0af7cdf9692bd396 (patch)
tree66b0c81fb2c16d914e741c8d8355cc030f06ebc9 /sound/pci/hda/patch_realtek.c
parentde75577c8c3ab733f808c65e1a9d55882efde68e (diff)
ALSA: hda - Fix output-path initialization for Realtek auto-parser
When the headphone or speaker output has no own DAC, initialize the path using the primary DAC. Otherwise the path won't be set properly and can result in the silence. 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.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index fcb11af9ad2..0fefc1088d1 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3083,16 +3083,22 @@ static void alc_auto_init_multi_out(struct hda_codec *codec)
3083static void alc_auto_init_extra_out(struct hda_codec *codec) 3083static void alc_auto_init_extra_out(struct hda_codec *codec)
3084{ 3084{
3085 struct alc_spec *spec = codec->spec; 3085 struct alc_spec *spec = codec->spec;
3086 hda_nid_t pin; 3086 hda_nid_t pin, dac;
3087 3087
3088 pin = spec->autocfg.hp_pins[0]; 3088 pin = spec->autocfg.hp_pins[0];
3089 if (pin) 3089 if (pin) {
3090 alc_auto_set_output_and_unmute(codec, pin, PIN_HP, 3090 dac = spec->multiout.hp_nid;
3091 spec->multiout.hp_nid); 3091 if (!dac)
3092 dac = spec->multiout.dac_nids[0];
3093 alc_auto_set_output_and_unmute(codec, pin, PIN_HP, dac);
3094 }
3092 pin = spec->autocfg.speaker_pins[0]; 3095 pin = spec->autocfg.speaker_pins[0];
3093 if (pin) 3096 if (pin) {
3094 alc_auto_set_output_and_unmute(codec, pin, PIN_OUT, 3097 dac = spec->multiout.extra_out_nid[0];
3095 spec->multiout.extra_out_nid[0]); 3098 if (!dac)
3099 dac = spec->multiout.dac_nids[0];
3100 alc_auto_set_output_and_unmute(codec, pin, PIN_OUT, dac);
3101 }
3096} 3102}
3097 3103
3098/* 3104/*