aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-02-22 12:36:46 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-22 17:20:08 -0500
commitcbef97892e0c545575342332d0d84a910ca4c587 (patch)
tree2ded15a5c6710917ec94e69f186663e530595fbb
parent90a5ad52bf2ce54aa7153735dc4488f00c050e54 (diff)
[ALSA] hda-codec - Fix SPDIF output on Conexant 5045 codec
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>
-rw-r--r--sound/pci/hda/patch_conexant.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index f6dd51cda7b2..f7cd3a804b11 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -488,7 +488,7 @@ static int conexant_ch_mode_put(struct snd_kcontrol *kcontrol,
488static hda_nid_t cxt5045_dac_nids[1] = { 0x19 }; 488static hda_nid_t cxt5045_dac_nids[1] = { 0x19 };
489static hda_nid_t cxt5045_adc_nids[1] = { 0x1a }; 489static hda_nid_t cxt5045_adc_nids[1] = { 0x1a };
490static hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a }; 490static hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a };
491#define CXT5045_SPDIF_OUT 0x13 491#define CXT5045_SPDIF_OUT 0x18
492 492
493static struct hda_channel_mode cxt5045_modes[1] = { 493static struct hda_channel_mode cxt5045_modes[1] = {
494 { 2, NULL }, 494 { 2, NULL },
@@ -658,6 +658,7 @@ static struct hda_verb cxt5045_init_verbs[] = {
658 {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, 658 {0x1a, AC_VERB_SET_AMP_GAIN_MUTE,
659 AC_AMP_SET_INPUT|AC_AMP_SET_RIGHT|AC_AMP_SET_LEFT|0x17}, 659 AC_AMP_SET_INPUT|AC_AMP_SET_RIGHT|AC_AMP_SET_LEFT|0x17},
660 /* SPDIF route: PCM */ 660 /* SPDIF route: PCM */
661 {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
661 { 0x13, AC_VERB_SET_CONNECT_SEL, 0x0 }, 662 { 0x13, AC_VERB_SET_CONNECT_SEL, 0x0 },
662 /* EAPD */ 663 /* EAPD */
663 {0x10, AC_VERB_SET_EAPD_BTLENABLE, 0x2 }, /* default on */ 664 {0x10, AC_VERB_SET_EAPD_BTLENABLE, 0x2 }, /* default on */
@@ -683,6 +684,7 @@ static struct hda_verb cxt5045_benq_init_verbs[] = {
683 {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, 684 {0x1a, AC_VERB_SET_AMP_GAIN_MUTE,
684 AC_AMP_SET_INPUT|AC_AMP_SET_RIGHT|AC_AMP_SET_LEFT|0x17}, 685 AC_AMP_SET_INPUT|AC_AMP_SET_RIGHT|AC_AMP_SET_LEFT|0x17},
685 /* SPDIF route: PCM */ 686 /* SPDIF route: PCM */
687 {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
686 {0x13, AC_VERB_SET_CONNECT_SEL, 0x0}, 688 {0x13, AC_VERB_SET_CONNECT_SEL, 0x0},
687 /* EAPD */ 689 /* EAPD */
688 {0x10, AC_VERB_SET_EAPD_BTLENABLE, 0x2}, /* default on */ 690 {0x10, AC_VERB_SET_EAPD_BTLENABLE, 0x2}, /* default on */
@@ -781,7 +783,8 @@ static struct hda_verb cxt5045_test_init_verbs[] = {
781 * PCM format, copyright asserted, no pre-emphasis and no validity 783 * PCM format, copyright asserted, no pre-emphasis and no validity
782 * control. 784 * control.
783 */ 785 */
784 {0x13, AC_VERB_SET_DIGI_CONVERT_1, 0}, 786 {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
787 {0x18, AC_VERB_SET_DIGI_CONVERT_1, 0},
785 788
786 /* Start with output sum widgets muted and their output gains at min */ 789 /* Start with output sum widgets muted and their output gains at min */
787 {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, 790 {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},