[alsa-devel] [RESEND PATCH 1/1] Allow any MIDI endpoint to drive use of interrupt transfer on newer Roland devices
Takashi Iwai
tiwai at suse.de
Sun Oct 11 18:21:48 CEST 2015
On Sun, 11 Oct 2015 16:19:48 +0200,
maillist at superlative.org wrote:
>
> From: "Keith A. Milner" <maillist at superlative.org>
>
> This patch enables interrupt transfer mode for MIDI ports on newer
> Boss/Roland devices such as the GT-100/001 which support interrupt
> transfer on both IN and OUT MIDI endpoints. Previously this wasn't being
> enabled for these devices as the code was specifically looking for the
> scenario where the IN endpoint supported interrupt transfer and the OUT
> endpoint was bulk transfer. Newer devices support interrupt transfer for
> both endpoints.
>
> This has been tested on Boss devices GT-001, BR-80 and JS-8 and Roland
> VS-20.
>
> It would benefit from some regresison testing with other devices if
> possible.
>
> Signed-off-by: Keith A. Milner <maillist at superlative.org>
Thanks, now it looks much better.
But the patch didn't apply cleanly to the latest kernel, so I had to
adjust manually. At the next time, please try to align with the
latest kernel tree.
Takashi
>
> diff --git a/sound/usb/midi.c b/sound/usb/midi.c
> index b901f46..d50c649 100644
> --- a/sound/usb/midi.c
> +++ b/sound/usb/midi.c
> @@ -1860,9 +1860,14 @@ static void snd_usbmidi_switch_roland_altsetting(struct snd_usb_midi* umidi)
>
> hostif = &intf->altsetting[1];
> intfd = get_iface_desc(hostif);
> + /* If either or both of the endpoints support interrupt transfer,
> + * then use the alternate setting
> + */
> if (intfd->bNumEndpoints != 2 ||
> - (get_endpoint(hostif, 0)->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_BULK ||
> - (get_endpoint(hostif, 1)->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_INT)
> + !((get_endpoint(hostif, 0)->bmAttributes
> + & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT ||
> + (get_endpoint(hostif, 1)->bmAttributes
> + & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT))
> return;
>
> snd_printdd(KERN_INFO "switching to altsetting %d with int ep\n",
> --
> 1.9.1
>
More information about the Alsa-devel
mailing list