Message ID | 1426149692-598-1-git-send-email-daniel@zonque.org (mailing list archive) |
---|---|
State | Accepted |
Commit | fcdcd1dec6d2c7b718385ec743ae5a9a233edad4 |
Headers | show |
At Thu, 12 Mar 2015 09:41:32 +0100, Daniel Mack wrote: > > 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: Daniel Mack <daniel@zonque.org> > Reported-by: Rafa Lafuente <rafalafuente@gmail.com> > Tested-by: Raphaël Doursenaud <raphael@doursenaud.fr> Applied now (with Cc to stable). Thanks. Takashi > --- > sound/usb/quirks-table.h | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h > index 67d4765..07f984d 100644 > --- a/sound/usb/quirks-table.h > +++ b/sound/usb/quirks-table.h > @@ -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 | > -- > 2.3.1 >
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 67d4765..07f984d 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -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 |