[alsa-devel] [PATCH] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4

Clemens Ladisch clemens at ladisch.de
Thu Jun 25 20:23:05 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>
> ---
>  sound/usb/quirks-table.h | 43 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>
> diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
> index 2f6d3e9..304c02a 100644
> --- a/sound/usb/quirks-table.h
> +++ b/sound/usb/quirks-table.h
> @@ -3152,6 +3152,49 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
>  },
>
>  {
> +	/* 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 = 3,
> +				.type = QUIRK_MIDI_FIXED_ENDPOINT,
> +				.data = &(const struct snd_usb_midi_endpoint_info) {
> +					.out_cables = 0x0001,
> +					.in_cables  = 0x0001
> +				}
> +			},
> +			{
> +				.ifnum = -1
> +			}
> +		}
> +	}

Please add entries for the other interfaces.  Without them, interface
zero will not be attached, and the other interface are not handled
atomically.

And in theory, the device entries are supposed to be sorted by ID.


Regards,
Clemens


More information about the Alsa-devel mailing list