Skip to content

Commit

Permalink
[ALSA] usb-audio - add support for Miditech USB MIDI keyboards
Browse files Browse the repository at this point in the history
USB generic driver
Add support for Miditech Midistart and MidiStudio keyboards (another
case of devices using the standard protocol but having no descriptors).

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
  • Loading branch information
Clemens Ladisch authored and Jaroslav Kysela committed Jul 28, 2005
1 parent d06e4c4 commit f38275f
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 0 deletions.
1 change: 1 addition & 0 deletions sound/usb/usbaudio.c
Original file line number Diff line number Diff line change
Expand Up @@ -2972,6 +2972,7 @@ static int snd_usb_create_quirk(snd_usb_audio_t *chip,
case QUIRK_MIDI_NOVATION:
case QUIRK_MIDI_RAW:
case QUIRK_MIDI_EMAGIC:
case QUIRK_MIDI_MIDITECH:
return snd_usb_create_midi_interface(chip, iface, quirk);
case QUIRK_COMPOSITE:
return create_composite_quirk(chip, iface, quirk);
Expand Down
3 changes: 3 additions & 0 deletions sound/usb/usbaudio.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ struct snd_usb_audio {
#define QUIRK_MIDI_NOVATION 10
#define QUIRK_MIDI_RAW 11
#define QUIRK_MIDI_EMAGIC 12
#define QUIRK_MIDI_MIDITECH 13

typedef struct snd_usb_audio_quirk snd_usb_audio_quirk_t;
typedef struct snd_usb_midi_endpoint_info snd_usb_midi_endpoint_info_t;
Expand Down Expand Up @@ -210,6 +211,8 @@ struct snd_usb_midi_endpoint_info {
/* for QUIRK_MIDI_EMAGIC, data points to a snd_usb_midi_endpoint_info
* structure (out_cables and in_cables only) */

/* for QUIRK_MIDI_MIDITECH, data is NULL */

/*
*/

Expand Down
3 changes: 3 additions & 0 deletions sound/usb/usbmidi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1515,6 +1515,9 @@ int snd_usb_create_midi_interface(snd_usb_audio_t* chip,
sizeof(snd_usb_midi_endpoint_info_t));
err = snd_usbmidi_detect_endpoints(umidi, &endpoints[0], 1);
break;
case QUIRK_MIDI_MIDITECH:
err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints);
break;
default:
snd_printd(KERN_ERR "invalid quirk type %d\n", quirk->type);
err = -ENXIO;
Expand Down
19 changes: 19 additions & 0 deletions sound/usb/usbquirks.h
Original file line number Diff line number Diff line change
Expand Up @@ -1378,6 +1378,25 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
},

{
USB_DEVICE(0x4752, 0x0011),
.driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
.vendor_name = "Miditech",
.product_name = "Midistart-2",
.ifnum = 0,
.type = QUIRK_MIDI_MIDITECH
}
},
{
USB_DEVICE(0x7104, 0x2202),
.driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
.vendor_name = "Miditech",
.product_name = "MidiStudio-2",
.ifnum = 0,
.type = QUIRK_MIDI_MIDITECH
}
},

{
/*
* Some USB MIDI devices don't have an audio control interface,
Expand Down

0 comments on commit f38275f

Please sign in to comment.