diff options
-rw-r--r-- | sound/usb/usbaudio.c | 1 | ||||
-rw-r--r-- | sound/usb/usbaudio.h | 3 | ||||
-rw-r--r-- | sound/usb/usbmidi.c | 3 | ||||
-rw-r--r-- | sound/usb/usbquirks.h | 19 |
4 files changed, 26 insertions, 0 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c index f2b760d8d77e..9a0b0899d156 100644 --- a/sound/usb/usbaudio.c +++ b/sound/usb/usbaudio.c | |||
@@ -2972,6 +2972,7 @@ static int snd_usb_create_quirk(snd_usb_audio_t *chip, | |||
2972 | case QUIRK_MIDI_NOVATION: | 2972 | case QUIRK_MIDI_NOVATION: |
2973 | case QUIRK_MIDI_RAW: | 2973 | case QUIRK_MIDI_RAW: |
2974 | case QUIRK_MIDI_EMAGIC: | 2974 | case QUIRK_MIDI_EMAGIC: |
2975 | case QUIRK_MIDI_MIDITECH: | ||
2975 | return snd_usb_create_midi_interface(chip, iface, quirk); | 2976 | return snd_usb_create_midi_interface(chip, iface, quirk); |
2976 | case QUIRK_COMPOSITE: | 2977 | case QUIRK_COMPOSITE: |
2977 | return create_composite_quirk(chip, iface, quirk); | 2978 | return create_composite_quirk(chip, iface, quirk); |
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index a87912205477..c1415f4b6004 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h | |||
@@ -167,6 +167,7 @@ struct snd_usb_audio { | |||
167 | #define QUIRK_MIDI_NOVATION 10 | 167 | #define QUIRK_MIDI_NOVATION 10 |
168 | #define QUIRK_MIDI_RAW 11 | 168 | #define QUIRK_MIDI_RAW 11 |
169 | #define QUIRK_MIDI_EMAGIC 12 | 169 | #define QUIRK_MIDI_EMAGIC 12 |
170 | #define QUIRK_MIDI_MIDITECH 13 | ||
170 | 171 | ||
171 | typedef struct snd_usb_audio_quirk snd_usb_audio_quirk_t; | 172 | typedef struct snd_usb_audio_quirk snd_usb_audio_quirk_t; |
172 | typedef struct snd_usb_midi_endpoint_info snd_usb_midi_endpoint_info_t; | 173 | typedef struct snd_usb_midi_endpoint_info snd_usb_midi_endpoint_info_t; |
@@ -210,6 +211,8 @@ struct snd_usb_midi_endpoint_info { | |||
210 | /* for QUIRK_MIDI_EMAGIC, data points to a snd_usb_midi_endpoint_info | 211 | /* for QUIRK_MIDI_EMAGIC, data points to a snd_usb_midi_endpoint_info |
211 | * structure (out_cables and in_cables only) */ | 212 | * structure (out_cables and in_cables only) */ |
212 | 213 | ||
214 | /* for QUIRK_MIDI_MIDITECH, data is NULL */ | ||
215 | |||
213 | /* | 216 | /* |
214 | */ | 217 | */ |
215 | 218 | ||
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c index 5c754879c2b6..5778a9b725ec 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c | |||
@@ -1515,6 +1515,9 @@ int snd_usb_create_midi_interface(snd_usb_audio_t* chip, | |||
1515 | sizeof(snd_usb_midi_endpoint_info_t)); | 1515 | sizeof(snd_usb_midi_endpoint_info_t)); |
1516 | err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); | 1516 | err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1); |
1517 | break; | 1517 | break; |
1518 | case QUIRK_MIDI_MIDITECH: | ||
1519 | err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); | ||
1520 | break; | ||
1518 | default: | 1521 | default: |
1519 | snd_printd(KERN_ERR "invalid quirk type %d\n", quirk->type); | 1522 | snd_printd(KERN_ERR "invalid quirk type %d\n", quirk->type); |
1520 | err = -ENXIO; | 1523 | err = -ENXIO; |
diff --git a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h index 67796430e588..f74e652a1e51 100644 --- a/sound/usb/usbquirks.h +++ b/sound/usb/usbquirks.h | |||
@@ -1379,6 +1379,25 @@ YAMAHA_DEVICE(0x7010, "UB99"), | |||
1379 | }, | 1379 | }, |
1380 | 1380 | ||
1381 | { | 1381 | { |
1382 | USB_DEVICE(0x4752, 0x0011), | ||
1383 | .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) { | ||
1384 | .vendor_name = "Miditech", | ||
1385 | .product_name = "Midistart-2", | ||
1386 | .ifnum = 0, | ||
1387 | .type = QUIRK_MIDI_MIDITECH | ||
1388 | } | ||
1389 | }, | ||
1390 | { | ||
1391 | USB_DEVICE(0x7104, 0x2202), | ||
1392 | .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) { | ||
1393 | .vendor_name = "Miditech", | ||
1394 | .product_name = "MidiStudio-2", | ||
1395 | .ifnum = 0, | ||
1396 | .type = QUIRK_MIDI_MIDITECH | ||
1397 | } | ||
1398 | }, | ||
1399 | |||
1400 | { | ||
1382 | /* | 1401 | /* |
1383 | * Some USB MIDI devices don't have an audio control interface, | 1402 | * Some USB MIDI devices don't have an audio control interface, |
1384 | * so we have to grab MIDI streaming interfaces here. | 1403 | * so we have to grab MIDI streaming interfaces here. |