diff options
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/usbmixer_maps.c | 45 |
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 | | | ^ | ||
127 | USB_IN[1]-+------------+ +->EU[17]->+->FU[11]-+ | ||
128 | | v | v | | ||
129 | Dig_IN[4]---+->FU[6]-->MU[16]->FU[18]-+->EU[21]->SU[31]----->FU[30]->Hph_OUT[20] | ||
130 | | ^ | | | ||
131 | Lin_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 | */ | ||
137 | static 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 */ |
122 | static struct usbmix_name_map linex_map[] = { | 166 | static 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[] = { | |||
156 | static struct usbmix_ctl_map usbmix_ctl_maps[] = { | 200 | static 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 */ |