|
@@ -1571,6 +1571,140 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
|
|
.type = QUIRK_MIDI_STANDARD_INTERFACE
|
|
|
}
|
|
|
},
|
|
|
+{
|
|
|
+ /* only 44.1 kHz works at the moment */
|
|
|
+ USB_DEVICE(0x0582, 0x0120),
|
|
|
+ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
|
|
|
+ /* .vendor_name = "Roland", */
|
|
|
+ /* .product_name = "OCTO-CAPTURE", */
|
|
|
+ .ifnum = QUIRK_ANY_INTERFACE,
|
|
|
+ .type = QUIRK_COMPOSITE,
|
|
|
+ .data = (const struct snd_usb_audio_quirk[]) {
|
|
|
+ {
|
|
|
+ .ifnum = 0,
|
|
|
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
|
|
|
+ .data = & (const struct audioformat) {
|
|
|
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
|
|
|
+ .channels = 10,
|
|
|
+ .iface = 0,
|
|
|
+ .altsetting = 1,
|
|
|
+ .altset_idx = 1,
|
|
|
+ .endpoint = 0x05,
|
|
|
+ .ep_attr = 0x05,
|
|
|
+ .rates = SNDRV_PCM_RATE_44100,
|
|
|
+ .rate_min = 44100,
|
|
|
+ .rate_max = 44100,
|
|
|
+ .nr_rates = 1,
|
|
|
+ .rate_table = (unsigned int[]) { 44100 }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 1,
|
|
|
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
|
|
|
+ .data = & (const struct audioformat) {
|
|
|
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
|
|
|
+ .channels = 12,
|
|
|
+ .iface = 1,
|
|
|
+ .altsetting = 1,
|
|
|
+ .altset_idx = 1,
|
|
|
+ .endpoint = 0x85,
|
|
|
+ .ep_attr = 0x25,
|
|
|
+ .rates = SNDRV_PCM_RATE_44100,
|
|
|
+ .rate_min = 44100,
|
|
|
+ .rate_max = 44100,
|
|
|
+ .nr_rates = 1,
|
|
|
+ .rate_table = (unsigned int[]) { 44100 }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 2,
|
|
|
+ .type = QUIRK_MIDI_FIXED_ENDPOINT,
|
|
|
+ .data = & (const struct snd_usb_midi_endpoint_info) {
|
|
|
+ .out_cables = 0x0001,
|
|
|
+ .in_cables = 0x0001
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 3,
|
|
|
+ .type = QUIRK_IGNORE_INTERFACE
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 4,
|
|
|
+ .type = QUIRK_IGNORE_INTERFACE
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = -1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+},
|
|
|
+{
|
|
|
+ /* only 44.1 kHz works at the moment */
|
|
|
+ USB_DEVICE(0x0582, 0x012f),
|
|
|
+ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
|
|
|
+ /* .vendor_name = "Roland", */
|
|
|
+ /* .product_name = "QUAD-CAPTURE", */
|
|
|
+ .ifnum = QUIRK_ANY_INTERFACE,
|
|
|
+ .type = QUIRK_COMPOSITE,
|
|
|
+ .data = (const struct snd_usb_audio_quirk[]) {
|
|
|
+ {
|
|
|
+ .ifnum = 0,
|
|
|
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
|
|
|
+ .data = & (const struct audioformat) {
|
|
|
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
|
|
|
+ .channels = 4,
|
|
|
+ .iface = 0,
|
|
|
+ .altsetting = 1,
|
|
|
+ .altset_idx = 1,
|
|
|
+ .endpoint = 0x05,
|
|
|
+ .ep_attr = 0x05,
|
|
|
+ .rates = SNDRV_PCM_RATE_44100,
|
|
|
+ .rate_min = 44100,
|
|
|
+ .rate_max = 44100,
|
|
|
+ .nr_rates = 1,
|
|
|
+ .rate_table = (unsigned int[]) { 44100 }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 1,
|
|
|
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
|
|
|
+ .data = & (const struct audioformat) {
|
|
|
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
|
|
|
+ .channels = 6,
|
|
|
+ .iface = 1,
|
|
|
+ .altsetting = 1,
|
|
|
+ .altset_idx = 1,
|
|
|
+ .endpoint = 0x85,
|
|
|
+ .ep_attr = 0x25,
|
|
|
+ .rates = SNDRV_PCM_RATE_44100,
|
|
|
+ .rate_min = 44100,
|
|
|
+ .rate_max = 44100,
|
|
|
+ .nr_rates = 1,
|
|
|
+ .rate_table = (unsigned int[]) { 44100 }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 2,
|
|
|
+ .type = QUIRK_MIDI_FIXED_ENDPOINT,
|
|
|
+ .data = & (const struct snd_usb_midi_endpoint_info) {
|
|
|
+ .out_cables = 0x0001,
|
|
|
+ .in_cables = 0x0001
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 3,
|
|
|
+ .type = QUIRK_IGNORE_INTERFACE
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = 4,
|
|
|
+ .type = QUIRK_IGNORE_INTERFACE
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ifnum = -1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+},
|
|
|
/* this catches most recent vendor-specific Roland devices */
|
|
|
{
|
|
|
.match_flags = USB_DEVICE_ID_MATCH_VENDOR |
|