diff options
-rw-r--r-- | sound/usb/usbmidi.c | 2 | ||||
-rw-r--r-- | sound/usb/usbquirks.h | 22 |
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 { { USB_ID(0x086a, 0x0001), 8, "%s Broadcast" }, { USB_ID(0x086a, 0x0002), 8, "%s Broadcast" }, { USB_ID(0x086a, 0x0003), 4, "%s Broadcast" }, + /* Edirol UM-3ex */ + { USB_ID(0x0582, 0x009a), 3, "%s Control" }, }; static 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"), } }, { + USB_DEVICE(0x0582, 0x009a), + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { + .vendor_name = "EDIROL", + .product_name = "UM-3ex", + .ifnum = QUIRK_ANY_INTERFACE, + .type = QUIRK_COMPOSITE, + .data = (const struct snd_usb_audio_quirk[]) { + { + .ifnum = 0, + .type = QUIRK_MIDI_FIXED_ENDPOINT, + .data = & (const struct snd_usb_midi_endpoint_info) { + .out_cables = 0x000f, + .in_cables = 0x000f + } + }, + { + .ifnum = -1 + } + } + } +}, +{ USB_DEVICE(0x0582, 0x0002), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "EDIROL", |