All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
@ 2015-06-25 15:26 Dominic Sacré
  2015-06-25 18:23 ` Clemens Ladisch
  0 siblings, 1 reply; 8+ messages in thread
From: Dominic Sacré @ 2015-06-25 15:26 UTC (permalink / raw)
  To: alsa-devel; +Cc: Dominic Sacré, Albert Huitsing

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>
---
 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
+			}
+		}
+	}
+},
+{
+	/* 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 = 3,
+				.type = QUIRK_MIDI_FIXED_ENDPOINT,
+				.data = &(const struct snd_usb_midi_endpoint_info) {
+					.out_cables = 0x0001,
+					.in_cables  = 0x0001
+				}
+			},
+			{
+				.ifnum = -1
+			}
+		}
+	}
+},
+
+{
 	/*
 	 * Some USB MIDI devices don't have an audio control interface,
 	 * so we have to grab MIDI streaming interfaces here.
-- 
2.4.4

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-06-25 15:26 [PATCH] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 Dominic Sacré
@ 2015-06-25 18:23 ` Clemens Ladisch
  2015-06-30 15:41   ` [PATCH v2] " Dominic Sacré
  0 siblings, 1 reply; 8+ messages in thread
From: Clemens Ladisch @ 2015-06-25 18:23 UTC (permalink / raw)
  To: Dominic Sacré, Albert Huitsing; +Cc: alsa-devel

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>
> ---
>  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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-06-25 18:23 ` Clemens Ladisch
@ 2015-06-30 15:41   ` Dominic Sacré
  2015-07-01 14:06     ` Clemens Ladisch
  2015-07-01 15:30     ` Takashi Iwai
  0 siblings, 2 replies; 8+ messages in thread
From: Dominic Sacré @ 2015-06-30 15:41 UTC (permalink / raw)
  To: alsa-devel; +Cc: Dominic Sacré, clemens, Albert Huitsing

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>
---
 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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-06-30 15:41   ` [PATCH v2] " Dominic Sacré
@ 2015-07-01 14:06     ` Clemens Ladisch
  2015-07-01 15:30     ` Takashi Iwai
  1 sibling, 0 replies; 8+ messages in thread
From: Clemens Ladisch @ 2015-07-01 14:06 UTC (permalink / raw)
  To: alsa-devel, Takashi Iwai; +Cc: Dominic Sacré, Albert Huitsing

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),
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-06-30 15:41   ` [PATCH v2] " Dominic Sacré
  2015-07-01 14:06     ` Clemens Ladisch
@ 2015-07-01 15:30     ` Takashi Iwai
  2015-07-01 16:55       ` Cyrus Harmon
  1 sibling, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2015-07-01 15:30 UTC (permalink / raw)
  To: Dominic Sacré; +Cc: alsa-devel, clemens, Albert Huitsing

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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-07-01 15:30     ` Takashi Iwai
@ 2015-07-01 16:55       ` Cyrus Harmon
  2015-07-02  5:42         ` Takashi Iwai
  0 siblings, 1 reply; 8+ messages in thread
From: Cyrus Harmon @ 2015-07-01 16:55 UTC (permalink / raw)
  To: alsa-devel

As long as you're messing around with the quirks table, it would be nice 
to add support for the UR44. This was discussed on the list a while back 
and it wasn't clear why the quirk was needed, but it still seems to be 
needed, at least last I looked.

thanks,

Cyrus

diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index 2f6d3e9..ed7875e 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -466,6 +466,36 @@ YAMAHA_DEVICE(0x105d, NULL),
                 }
         }
  },
+{
+       USB_DEVICE(0x0499, 0x150e),
+       .driver_info = (unsigned long) & (const struct 
snd_usb_audio_quirk) {
+               /* .vendor_name = "Yamaha", */
+               /* .product_name = "Steinberg UR44", */
+               .ifnum = QUIRK_ANY_INTERFACE,
+               .type = QUIRK_COMPOSITE,
+               .data = (const struct snd_usb_audio_quirk[]) {
+                       {
+                               .ifnum = 1,
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
+                       },
+                       {
+                               .ifnum = 2,
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
+                       },
+                       {
+                               .ifnum = 3,
+                               .type = QUIRK_MIDI_YAMAHA
+                       },
+                       {
+                               .ifnum = 4,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = -1
+                       }
+               }
+       }
+},
  YAMAHA_DEVICE(0x2000, "DGP-7"),
  YAMAHA_DEVICE(0x2001, "DGP-5"),
  YAMAHA_DEVICE(0x2002, NULL),


On 07/01/2015 08:30 AM, Takashi Iwai wrote:
> 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
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-07-01 16:55       ` Cyrus Harmon
@ 2015-07-02  5:42         ` Takashi Iwai
  2015-07-03  1:47           ` Cyrus Harmon
  0 siblings, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2015-07-02  5:42 UTC (permalink / raw)
  To: Cyrus Harmon; +Cc: alsa-devel

At Wed, 1 Jul 2015 09:55:09 -0700,
Cyrus Harmon wrote:
> 
> As long as you're messing around with the quirks table, it would be nice 
> to add support for the UR44. This was discussed on the list a while back 
> and it wasn't clear why the quirk was needed, but it still seems to be 
> needed, at least last I looked.

Well, I need to know it *is* needed or *seems* needed.  In the former
case, I'd happily take the patch.  If so, please submit the patch in a
formal way (with a patch description and your sign-off).


thanks,

Takashi


> 
> thanks,
> 
> Cyrus
> 
> diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
> index 2f6d3e9..ed7875e 100644
> --- a/sound/usb/quirks-table.h
> +++ b/sound/usb/quirks-table.h
> @@ -466,6 +466,36 @@ YAMAHA_DEVICE(0x105d, NULL),
>                  }
>          }
>   },
> +{
> +       USB_DEVICE(0x0499, 0x150e),
> +       .driver_info = (unsigned long) & (const struct 
> snd_usb_audio_quirk) {
> +               /* .vendor_name = "Yamaha", */
> +               /* .product_name = "Steinberg UR44", */
> +               .ifnum = QUIRK_ANY_INTERFACE,
> +               .type = QUIRK_COMPOSITE,
> +               .data = (const struct snd_usb_audio_quirk[]) {
> +                       {
> +                               .ifnum = 1,
> +                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
> +                       },
> +                       {
> +                               .ifnum = 2,
> +                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
> +                       },
> +                       {
> +                               .ifnum = 3,
> +                               .type = QUIRK_MIDI_YAMAHA
> +                       },
> +                       {
> +                               .ifnum = 4,
> +                               .type = QUIRK_IGNORE_INTERFACE
> +                       },
> +                       {
> +                               .ifnum = -1
> +                       }
> +               }
> +       }
> +},
>   YAMAHA_DEVICE(0x2000, "DGP-7"),
>   YAMAHA_DEVICE(0x2001, "DGP-5"),
>   YAMAHA_DEVICE(0x2002, NULL),
> 
> 
> On 07/01/2015 08:30 AM, Takashi Iwai wrote:
> > 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
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel@alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
  2015-07-02  5:42         ` Takashi Iwai
@ 2015-07-03  1:47           ` Cyrus Harmon
  0 siblings, 0 replies; 8+ messages in thread
From: Cyrus Harmon @ 2015-07-03  1:47 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel


Sorry for the confusion. Turns out this patch is not required if one 
uses the device in "Class Compliant" mode. Performance seems to be 
better with Class Compliant mode on than CC mode off with the patch, so 
I suggest abandoning the patch.

thanks,

Cyrus

On 07/01/2015 10:42 PM, Takashi Iwai wrote:
> At Wed, 1 Jul 2015 09:55:09 -0700,
> Cyrus Harmon wrote:
>> As long as you're messing around with the quirks table, it would be nice
>> to add support for the UR44. This was discussed on the list a while back
>> and it wasn't clear why the quirk was needed, but it still seems to be
>> needed, at least last I looked.
> Well, I need to know it *is* needed or *seems* needed.  In the former
> case, I'd happily take the patch.  If so, please submit the patch in a
> formal way (with a patch description and your sign-off).
>
>
> thanks,
>
> Takashi
>
>
>> thanks,
>>
>> Cyrus
>>
>> diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
>> index 2f6d3e9..ed7875e 100644
>> --- a/sound/usb/quirks-table.h
>> +++ b/sound/usb/quirks-table.h
>> @@ -466,6 +466,36 @@ YAMAHA_DEVICE(0x105d, NULL),
>>                   }
>>           }
>>    },
>> +{
>> +       USB_DEVICE(0x0499, 0x150e),
>> +       .driver_info = (unsigned long) & (const struct
>> snd_usb_audio_quirk) {
>> +               /* .vendor_name = "Yamaha", */
>> +               /* .product_name = "Steinberg UR44", */
>> +               .ifnum = QUIRK_ANY_INTERFACE,
>> +               .type = QUIRK_COMPOSITE,
>> +               .data = (const struct snd_usb_audio_quirk[]) {
>> +                       {
>> +                               .ifnum = 1,
>> +                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
>> +                       },
>> +                       {
>> +                               .ifnum = 2,
>> +                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
>> +                       },
>> +                       {
>> +                               .ifnum = 3,
>> +                               .type = QUIRK_MIDI_YAMAHA
>> +                       },
>> +                       {
>> +                               .ifnum = 4,
>> +                               .type = QUIRK_IGNORE_INTERFACE
>> +                       },
>> +                       {
>> +                               .ifnum = -1
>> +                       }
>> +               }
>> +       }
>> +},
>>    YAMAHA_DEVICE(0x2000, "DGP-7"),
>>    YAMAHA_DEVICE(0x2001, "DGP-5"),
>>    YAMAHA_DEVICE(0x2002, NULL),
>>
>>
>> On 07/01/2015 08:30 AM, Takashi Iwai wrote:
>>> 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
>>> _______________________________________________
>>> Alsa-devel mailing list
>>> Alsa-devel@alsa-project.org
>>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>> _______________________________________________
>> Alsa-devel mailing list
>> Alsa-devel@alsa-project.org
>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-07-03  1:47 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-25 15:26 [PATCH] ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 Dominic Sacré
2015-06-25 18:23 ` Clemens Ladisch
2015-06-30 15:41   ` [PATCH v2] " Dominic Sacré
2015-07-01 14:06     ` Clemens Ladisch
2015-07-01 15:30     ` Takashi Iwai
2015-07-01 16:55       ` Cyrus Harmon
2015-07-02  5:42         ` Takashi Iwai
2015-07-03  1:47           ` Cyrus Harmon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.