Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fcdcd1de authored by Daniel Mack's avatar Daniel Mack Committed by Takashi Iwai
Browse files

ALSA: snd-usb: add quirks for Roland UA-22



The device complies to the UAC1 standard but hides that fact with
proprietary descriptors. The autodetect quirk for Roland devices
catches the audio interface but misses the MIDI part, so a specific
quirk is needed.

Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
Reported-by: default avatarRafa Lafuente <rafalafuente@gmail.com>
Tested-by: default avatarRaphaël Doursenaud <raphael@doursenaud.fr>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent be3bb823
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -1773,6 +1773,36 @@ YAMAHA_DEVICE(0x7010, "UB99"),
		}
	}
},
{
	USB_DEVICE(0x0582, 0x0159),
	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
		/* .vendor_name = "Roland", */
		/* .product_name = "UA-22", */
		.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 = 0x0001,
					.in_cables = 0x0001
				}
			},
			{
				.ifnum = -1
			}
		}
	}
},
/* this catches most recent vendor-specific Roland devices */
{
	.match_flags = USB_DEVICE_ID_MATCH_VENDOR |