Thanks for the help everyone. I was able to get the device's USB audio and MIDI to work, but need additional time for testing and tweaking of the code.
Here's the patch so far, please let me know if there are any other enhancements I should consider.
{ /* Roland GAIA SH-01 */ USB_DEVICE(0x0582, 0x0111), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Roland", .product_name = "SH-01", .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_MIDI_FIXED_ENDPOINT, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0003, .in_cables = 0x0003 } }, { .ifnum = -1 } } } },
Regards,
John F Leach