aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/usb/usbmixer_maps.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/sound/usb/usbmixer_maps.c b/sound/usb/usbmixer_maps.c
index 1e994c9d86d9..4918a1854223 100644
--- a/sound/usb/usbmixer_maps.c
+++ b/sound/usb/usbmixer_maps.c
@@ -118,6 +118,50 @@ static struct usbmix_name_map mp3plus_map[] = {
118 { 0 } /* terminator */ 118 { 0 } /* terminator */
119}; 119};
120 120
121/* Topology of SB Audigy 2 NX
122
123 +----------------------------->EU[27]--+
124 | v
125 | +----------------------------------->SU[29]---->FU[22]-->Dig_OUT[24]
126 | | ^
127USB_IN[1]-+------------+ +->EU[17]->+->FU[11]-+
128 | v | v |
129Dig_IN[4]---+->FU[6]-->MU[16]->FU[18]-+->EU[21]->SU[31]----->FU[30]->Hph_OUT[20]
130 | ^ | |
131Lin_IN[7]-+--->FU[8]---+ +->EU[23]->FU[28]------------->Spk_OUT[19]
132 | | v
133 +--->FU[12]------------------------------------->SU[14]--->USB_OUT[15]
134 | ^
135 +->FU[13]--------------------------------------+
136*/
137static struct usbmix_name_map audigy2nx_map[] = {
138 /* 1: IT pcm playback */
139 /* 4: IT digital in */
140 { 6, "Digital In Playback" }, /* FU */
141 /* 7: IT line in */
142 { 8, "Line Playback" }, /* FU */
143 { 11, "What-U-Hear Capture" }, /* FU */
144 { 12, "Line Capture" }, /* FU */
145 { 13, "Digital In Capture" }, /* FU */
146 { 14, "Capture Source" }, /* SU */
147 /* 15: OT pcm capture */
148 /* 16: MU w/o controls */
149 { 17, NULL }, /* DISABLED: EU (for what?) */
150 { 18, "Master Playback" }, /* FU */
151 /* 19: OT speaker */
152 /* 20: OT headphone */
153 { 21, NULL }, /* DISABLED: EU (for what?) */
154 { 22, "Digital Out Playback" }, /* FU */
155 { 23, NULL }, /* DISABLED: EU (for what?) */
156 /* 24: OT digital out */
157 { 27, NULL }, /* DISABLED: EU (for what?) */
158 { 28, "Speaker Playback" }, /* FU */
159 { 29, "Digital Out Source" }, /* SU */
160 { 30, "Headphone Playback" }, /* FU */
161 { 31, "Headphone Source" }, /* SU */
162 { 0 } /* terminator */
163};
164
121/* LineX FM Transmitter entry - needed to bypass controls bug */ 165/* LineX FM Transmitter entry - needed to bypass controls bug */
122static struct usbmix_name_map linex_map[] = { 166static struct usbmix_name_map linex_map[] = {
123 /* 1: IT pcm */ 167 /* 1: IT pcm */
@@ -156,6 +200,7 @@ static struct usbmix_name_map justlink_map[] = {
156static struct usbmix_ctl_map usbmix_ctl_maps[] = { 200static struct usbmix_ctl_map usbmix_ctl_maps[] = {
157 { 0x41e, 0x3000, extigy_map, 1 }, 201 { 0x41e, 0x3000, extigy_map, 1 },
158 { 0x41e, 0x3010, mp3plus_map, 0 }, 202 { 0x41e, 0x3010, mp3plus_map, 0 },
203 { 0x41e, 0x3020, audigy2nx_map, 0 },
159 { 0x8bb, 0x2702, linex_map, 1 }, 204 { 0x8bb, 0x2702, linex_map, 1 },
160 { 0xc45, 0x1158, justlink_map, 0 }, 205 { 0xc45, 0x1158, justlink_map, 0 },
161 { 0 } /* terminator */ 206 { 0 } /* terminator */