* [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.