[alsa-devel] [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
Clemens Ladisch
clemens at ladisch.de
Wed Jul 1 16:06:19 CEST 2015
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 at gmx.de>
> Signed-off-by: Albert Huitsing <albert at huitsing.nl>
Acked-by: Clemens Ladisch <clemens at 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),
More information about the Alsa-devel
mailing list