aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2008-09-13 19:54:58 -0400
committerJaroslav Kysela <perex@perex.cz>2008-09-23 02:18:03 -0400
commit9cae0c63785d7e1ee1c97ca75148174d483f5200 (patch)
tree5024d042cf96b8163b27c903ae5efff8455e8da7 /sound/pci/hda
parent0481f4534910e644626a3607b2a1a979420a2d05 (diff)
ALSA: HDA: patch_analog: Implement multiple outputs for AD1988
Implement the slave_dig_outs for AD1989 cards. Untested due to lack of hardware. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/patch_analog.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 03b9d3df4ebd..42b1a231347f 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -1826,9 +1826,14 @@ static hda_nid_t ad1988_capsrc_nids[3] = {
1826 0x0c, 0x0d, 0x0e 1826 0x0c, 0x0d, 0x0e
1827}; 1827};
1828 1828
1829#define AD1988_SPDIF_OUT 0x02 1829#define AD1988_SPDIF_OUT 0x02
1830#define AD1988_SPDIF_OUT_HDMI 0x0b
1830#define AD1988_SPDIF_IN 0x07 1831#define AD1988_SPDIF_IN 0x07
1831 1832
1833static hda_nid_t ad1989b_slave_dig_outs[2] = {
1834 AD1988_SPDIF_OUT, AD1988_SPDIF_OUT_HDMI
1835};
1836
1832static struct hda_input_mux ad1988_6stack_capture_source = { 1837static struct hda_input_mux ad1988_6stack_capture_source = {
1833 .num_items = 5, 1838 .num_items = 5,
1834 .items = { 1839 .items = {
@@ -2143,6 +2148,7 @@ static struct snd_kcontrol_new ad1988_spdif_in_mixers[] = {
2143 2148
2144static struct snd_kcontrol_new ad1989_spdif_out_mixers[] = { 2149static struct snd_kcontrol_new ad1989_spdif_out_mixers[] = {
2145 HDA_CODEC_VOLUME("IEC958 Playback Volume", 0x1b, 0x0, HDA_OUTPUT), 2150 HDA_CODEC_VOLUME("IEC958 Playback Volume", 0x1b, 0x0, HDA_OUTPUT),
2151 HDA_CODEC_VOLUME("HDMI Playback Volume", 0x1d, 0x0, HDA_OUTPUT),
2146 { } /* end */ 2152 { } /* end */
2147}; 2153};
2148 2154
@@ -2985,6 +2991,7 @@ static int patch_ad1988(struct hda_codec *codec)
2985 ad1989_spdif_out_mixers; 2991 ad1989_spdif_out_mixers;
2986 spec->init_verbs[spec->num_init_verbs++] = 2992 spec->init_verbs[spec->num_init_verbs++] =
2987 ad1989_spdif_init_verbs; 2993 ad1989_spdif_init_verbs;
2994 codec->slave_dig_outs = ad1989b_slave_dig_outs;
2988 } else { 2995 } else {
2989 spec->mixers[spec->num_mixers++] = 2996 spec->mixers[spec->num_mixers++] =
2990 ad1988_spdif_out_mixers; 2997 ad1988_spdif_out_mixers;