.data = (const snd_usb_audio_quirk_t[]) {
{
.ifnum = 1,
- .type = QUIRK_AUDIO_EDIROL_UA700
+ .type = QUIRK_AUDIO_EDIROL_UA700_UA25
},
{
.ifnum = 2,
- .type = QUIRK_AUDIO_EDIROL_UA700
+ .type = QUIRK_AUDIO_EDIROL_UA700_UA25
},
{
.ifnum = 3,
- .type = QUIRK_AUDIO_EDIROL_UA700
+ .type = QUIRK_AUDIO_EDIROL_UA700_UA25
},
{
.ifnum = -1
.data = (const snd_usb_audio_quirk_t[]) {
{
.ifnum = 1,
- .type = QUIRK_AUDIO_FIXED_ENDPOINT,
- .data = & (const struct audioformat) {
- .format = SNDRV_PCM_FORMAT_S24,
- .channels = 12,
- .iface = 1,
- .altsetting = 1,
- .altset_idx = 1,
- .attributes = 0,
- .endpoint = 0x81,
- .ep_attr = 0x01,
- .rates = SNDRV_PCM_RATE_CONTINUOUS,
- .rate_min = 48000,
- .rate_max = 48000,
- }
+ .type = QUIRK_AUDIO_EDIROL_UA1000
},
{
.ifnum = 2,
- .type = QUIRK_AUDIO_FIXED_ENDPOINT,
- .data = & (const struct audioformat) {
- .format = SNDRV_PCM_FORMAT_S24,
- .channels = 10,
- .iface = 2,
- .altsetting = 1,
- .altset_idx = 1,
- .attributes = 0,
- .endpoint = 0x02,
- .ep_attr = 0x01,
- .rates = SNDRV_PCM_RATE_CONTINUOUS,
- .rate_min = 48000,
- .rate_max = 48000,
- }
+ .type = QUIRK_AUDIO_EDIROL_UA1000
},
{
.ifnum = 3,
.type = QUIRK_MIDI_STANDARD_INTERFACE
}
},
+{ /*
+ * This quirk is for the "Advanced" modes of the Edirol UA-25.
+ * If the switch is not in an advanced setting, the UA-25 has
+ * ID 0x0582/0x0073 and is standard compliant (no quirks), but
+ * offers only 16-bit PCM at 44.1 kHz and no MIDI.
+ */
+ USB_DEVICE_VENDOR_SPEC(0x0582, 0x0074),
+ .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+ .vendor_name = "EDIROL",
+ .product_name = "UA-25",
+ .ifnum = QUIRK_ANY_INTERFACE,
+ .type = QUIRK_COMPOSITE,
+ .data = (const snd_usb_audio_quirk_t[]) {
+ {
+ .ifnum = 0,
+ .type = QUIRK_AUDIO_EDIROL_UA700_UA25
+ },
+ {
+ .ifnum = 1,
+ .type = QUIRK_AUDIO_EDIROL_UA700_UA25
+ },
+ {
+ .ifnum = 2,
+ .type = QUIRK_AUDIO_EDIROL_UA700_UA25
+ },
+ {
+ .ifnum = -1
+ }
+ }
+ }
+},
/* Midiman/M-Audio devices */
{