diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-02-22 12:36:46 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-22 17:20:08 -0500 |
commit | cbef97892e0c545575342332d0d84a910ca4c587 (patch) | |
tree | 2ded15a5c6710917ec94e69f186663e530595fbb | |
parent | 90a5ad52bf2ce54aa7153735dc4488f00c050e54 (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.c | 7 |
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, | |||
488 | static hda_nid_t cxt5045_dac_nids[1] = { 0x19 }; | 488 | static hda_nid_t cxt5045_dac_nids[1] = { 0x19 }; |
489 | static hda_nid_t cxt5045_adc_nids[1] = { 0x1a }; | 489 | static hda_nid_t cxt5045_adc_nids[1] = { 0x1a }; |
490 | static hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a }; | 490 | static hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a }; |
491 | #define CXT5045_SPDIF_OUT 0x13 | 491 | #define CXT5045_SPDIF_OUT 0x18 |
492 | 492 | ||
493 | static struct hda_channel_mode cxt5045_modes[1] = { | 493 | static 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)}, |