[ALSA] hda-codec - Fix SPDIF output on Conexant 5045 codec
authorTakashi Iwai <tiwai@suse.de>
Fri, 22 Feb 2008 17:36:46 +0000 (18:36 +0100)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 22 Feb 2008 22:20:08 +0000 (14:20 -0800)
Fixed the SPDIF output on Conexant Cx5045 codec.  Added the missing
pin output setting and fixed the wrong NID for digital audio-out widget.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
sound/pci/hda/patch_conexant.c

index f6dd51cda7b268de749135bb3d0aef618d2acce9..f7cd3a804b11b5faa9283646cf0817efce8069e1 100644 (file)
@@ -488,7 +488,7 @@ static int conexant_ch_mode_put(struct snd_kcontrol *kcontrol,
 static hda_nid_t cxt5045_dac_nids[1] = { 0x19 };
 static hda_nid_t cxt5045_adc_nids[1] = { 0x1a };
 static hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a };
-#define CXT5045_SPDIF_OUT      0x13
+#define CXT5045_SPDIF_OUT      0x18
 
 static struct hda_channel_mode cxt5045_modes[1] = {
        { 2, NULL },
@@ -658,6 +658,7 @@ static struct hda_verb cxt5045_init_verbs[] = {
        {0x1a, AC_VERB_SET_AMP_GAIN_MUTE,
         AC_AMP_SET_INPUT|AC_AMP_SET_RIGHT|AC_AMP_SET_LEFT|0x17},
        /* SPDIF route: PCM */
+       {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
        { 0x13, AC_VERB_SET_CONNECT_SEL, 0x0 },
        /* EAPD */
        {0x10, AC_VERB_SET_EAPD_BTLENABLE, 0x2 }, /* default on */ 
@@ -683,6 +684,7 @@ static struct hda_verb cxt5045_benq_init_verbs[] = {
        {0x1a, AC_VERB_SET_AMP_GAIN_MUTE,
         AC_AMP_SET_INPUT|AC_AMP_SET_RIGHT|AC_AMP_SET_LEFT|0x17},
        /* SPDIF route: PCM */
+       {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
        {0x13, AC_VERB_SET_CONNECT_SEL, 0x0},
        /* EAPD */
        {0x10, AC_VERB_SET_EAPD_BTLENABLE, 0x2}, /* default on */
@@ -781,7 +783,8 @@ static struct hda_verb cxt5045_test_init_verbs[] = {
         * PCM format, copyright asserted, no pre-emphasis and no validity
         * control.
         */
-       {0x13, AC_VERB_SET_DIGI_CONVERT_1, 0},
+       {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+       {0x18, AC_VERB_SET_DIGI_CONVERT_1, 0},
 
        /* Start with output sum widgets muted and their output gains at min */
        {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},