Message ID | 1435678893-6757-1-git-send-email-dominic.sacre@gmx.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 0689a86ae814f39af94a9736a0a5426dd82eb107 |
Headers | show |
Dominic Sacré wrote: > The Steinberg MI2 and MI4 interfaces are compatible with the USB class > audio spec, but the MIDI part of the devices is reported as a vendor > specific interface. > > This patch adds entries to quirks-table.h to recognize the MIDI > endpoints. Audio functionality was already working and is unaffected by > this change. > > Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> > Signed-off-by: Albert Huitsing <albert@huitsing.nl> Acked-by: Clemens Ladisch <clemens@ladisch.de> > --- > sound/usb/quirks-table.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 68 insertions(+) > > diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h > index 2f6d3e9..e475665 100644 > --- a/sound/usb/quirks-table.h > +++ b/sound/usb/quirks-table.h > @@ -2512,6 +2512,74 @@ YAMAHA_DEVICE(0x7010, "UB99"), > } > }, > > +/* Steinberg devices */ > +{ > + /* Steinberg MI2 */ > + USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x2040), > + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { > + .ifnum = QUIRK_ANY_INTERFACE, > + .type = QUIRK_COMPOSITE, > + .data = & (const struct snd_usb_audio_quirk[]) { > + { > + .ifnum = 0, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 1, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 2, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 3, > + .type = QUIRK_MIDI_FIXED_ENDPOINT, > + .data = &(const struct snd_usb_midi_endpoint_info) { > + .out_cables = 0x0001, > + .in_cables = 0x0001 > + } > + }, > + { > + .ifnum = -1 > + } > + } > + } > +}, > +{ > + /* Steinberg MI4 */ > + USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x4040), > + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { > + .ifnum = QUIRK_ANY_INTERFACE, > + .type = QUIRK_COMPOSITE, > + .data = & (const struct snd_usb_audio_quirk[]) { > + { > + .ifnum = 0, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 1, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 2, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 3, > + .type = QUIRK_MIDI_FIXED_ENDPOINT, > + .data = &(const struct snd_usb_midi_endpoint_info) { > + .out_cables = 0x0001, > + .in_cables = 0x0001 > + } > + }, > + { > + .ifnum = -1 > + } > + } > + } > +}, > + > /* TerraTec devices */ > { > USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0012),
At Tue, 30 Jun 2015 17:41:33 +0200, Dominic Sacré wrote: > > The Steinberg MI2 and MI4 interfaces are compatible with the USB class > audio spec, but the MIDI part of the devices is reported as a vendor > specific interface. > > This patch adds entries to quirks-table.h to recognize the MIDI > endpoints. Audio functionality was already working and is unaffected by > this change. > > Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> > Signed-off-by: Albert Huitsing <albert@huitsing.nl> Applied now with Clemens' ack, and Cc to stable. thanks, Takashi > --- > sound/usb/quirks-table.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 68 insertions(+) > > diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h > index 2f6d3e9..e475665 100644 > --- a/sound/usb/quirks-table.h > +++ b/sound/usb/quirks-table.h > @@ -2512,6 +2512,74 @@ YAMAHA_DEVICE(0x7010, "UB99"), > } > }, > > +/* Steinberg devices */ > +{ > + /* Steinberg MI2 */ > + USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x2040), > + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { > + .ifnum = QUIRK_ANY_INTERFACE, > + .type = QUIRK_COMPOSITE, > + .data = & (const struct snd_usb_audio_quirk[]) { > + { > + .ifnum = 0, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 1, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 2, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 3, > + .type = QUIRK_MIDI_FIXED_ENDPOINT, > + .data = &(const struct snd_usb_midi_endpoint_info) { > + .out_cables = 0x0001, > + .in_cables = 0x0001 > + } > + }, > + { > + .ifnum = -1 > + } > + } > + } > +}, > +{ > + /* Steinberg MI4 */ > + USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x4040), > + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { > + .ifnum = QUIRK_ANY_INTERFACE, > + .type = QUIRK_COMPOSITE, > + .data = & (const struct snd_usb_audio_quirk[]) { > + { > + .ifnum = 0, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 1, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 2, > + .type = QUIRK_AUDIO_STANDARD_INTERFACE > + }, > + { > + .ifnum = 3, > + .type = QUIRK_MIDI_FIXED_ENDPOINT, > + .data = &(const struct snd_usb_midi_endpoint_info) { > + .out_cables = 0x0001, > + .in_cables = 0x0001 > + } > + }, > + { > + .ifnum = -1 > + } > + } > + } > +}, > + > /* TerraTec devices */ > { > USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0012), > -- > 2.4.5 > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 2f6d3e9..e475665 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -2512,6 +2512,74 @@ YAMAHA_DEVICE(0x7010, "UB99"), } }, +/* Steinberg devices */ +{ + /* Steinberg MI2 */ + USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x2040), + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { + .ifnum = QUIRK_ANY_INTERFACE, + .type = QUIRK_COMPOSITE, + .data = & (const struct snd_usb_audio_quirk[]) { + { + .ifnum = 0, + .type = QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum = 1, + .type = QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum = 2, + .type = QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum = 3, + .type = QUIRK_MIDI_FIXED_ENDPOINT, + .data = &(const struct snd_usb_midi_endpoint_info) { + .out_cables = 0x0001, + .in_cables = 0x0001 + } + }, + { + .ifnum = -1 + } + } + } +}, +{ + /* Steinberg MI4 */ + USB_DEVICE_VENDOR_SPEC(0x0a4e, 0x4040), + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { + .ifnum = QUIRK_ANY_INTERFACE, + .type = QUIRK_COMPOSITE, + .data = & (const struct snd_usb_audio_quirk[]) { + { + .ifnum = 0, + .type = QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum = 1, + .type = QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum = 2, + .type = QUIRK_AUDIO_STANDARD_INTERFACE + }, + { + .ifnum = 3, + .type = QUIRK_MIDI_FIXED_ENDPOINT, + .data = &(const struct snd_usb_midi_endpoint_info) { + .out_cables = 0x0001, + .in_cables = 0x0001 + } + }, + { + .ifnum = -1 + } + } + } +}, + /* TerraTec devices */ { USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0012),