aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 f15b021c3ce89f..905e33e6068120 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 6190ada00e3890..8f348611bb0082 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",