aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorBrent Cook <busterbcook@yahoo.com>2006-01-10 08:27:20 -0500
committerJaroslav Kysela <perex@suse.cz>2006-03-22 04:22:14 -0500
commite03173fce2f2c233b755f2d668d6d4247a717453 (patch)
treec1ba0936ae513f308fda33db69fc3d626d2a9c99 /sound/usb
parent34226c4239861654c69888e6e98973b2cc908c0b (diff)
[ALSA] Add support for EDIROL UM-3ex
Modules: USB generic driver This is my naive attempt at adding ALSA device support. The attached patch provides support for the EDIROL UM-3ex. This is a 3-port USB midi interface with a built-in USB hub and the ability to chain 2 other UM-3x's in a master-slave configuration. I only have one, so I do not know how this works in practice. Though this is a 3-port device, I had to throw in that 4th 'Control' interface to the definition in order to make the 3rd port work. If I set in/out_cables to 0x000b, a 3rd interface appears on the driver, but it does nothing. Changing it to 0x000f allows the 3rd interface to work, but of course interface 4 does not work because it does not exist. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/usbmidi.c2
-rw-r--r--sound/usb/usbquirks.h22
2 files changed, 24 insertions, 0 deletions
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c
index f15b021c3ce8..905e33e60681 100644
--- a/sound/usb/usbmidi.c
+++ b/sound/usb/usbmidi.c
@@ -1092,6 +1092,8 @@ static struct {
1092 { USB_ID(0x086a, 0x0001), 8, "%s Broadcast" }, 1092 { USB_ID(0x086a, 0x0001), 8, "%s Broadcast" },
1093 { USB_ID(0x086a, 0x0002), 8, "%s Broadcast" }, 1093 { USB_ID(0x086a, 0x0002), 8, "%s Broadcast" },
1094 { USB_ID(0x086a, 0x0003), 4, "%s Broadcast" }, 1094 { USB_ID(0x086a, 0x0003), 4, "%s Broadcast" },
1095 /* Edirol UM-3ex */
1096 { USB_ID(0x0582, 0x009a), 3, "%s Control" },
1095}; 1097};
1096 1098
1097static void snd_usbmidi_init_substream(struct snd_usb_midi* umidi, 1099static void snd_usbmidi_init_substream(struct snd_usb_midi* umidi,
diff --git a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h
index 6190ada00e38..8f348611bb00 100644
--- a/sound/usb/usbquirks.h
+++ b/sound/usb/usbquirks.h
@@ -204,6 +204,28 @@ YAMAHA_DEVICE(0x7010, "UB99"),
204 } 204 }
205}, 205},
206{ 206{
207 USB_DEVICE(0x0582, 0x009a),
208 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
209 .vendor_name = "EDIROL",
210 .product_name = "UM-3ex",
211 .ifnum = QUIRK_ANY_INTERFACE,
212 .type = QUIRK_COMPOSITE,
213 .data = (const struct snd_usb_audio_quirk[]) {
214 {
215 .ifnum = 0,
216 .type = QUIRK_MIDI_FIXED_ENDPOINT,
217 .data = & (const struct snd_usb_midi_endpoint_info) {
218 .out_cables = 0x000f,
219 .in_cables = 0x000f
220 }
221 },
222 {
223 .ifnum = -1
224 }
225 }
226 }
227},
228{
207 USB_DEVICE(0x0582, 0x0002), 229 USB_DEVICE(0x0582, 0x0002),
208 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { 230 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
209 .vendor_name = "EDIROL", 231 .vendor_name = "EDIROL",