aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbquirks.h
diff options
context:
space:
mode:
authorPedro Lopez-Cabanillas <pedro.lopez.cabanillas@gmail.com>2008-10-04 10:27:36 -0400
committerJaroslav Kysela <perex@perex.cz>2008-10-10 07:41:48 -0400
commit310e0dc01d15f6e792a54f971dc7b1e13d1c6e95 (patch)
tree1d5f9734d5197868cc74ba110be1fe83bbce3ce5 /sound/usb/usbquirks.h
parent7a17daae8ed71bf3259d905a4fc48a5b424fa935 (diff)
ALSA: snd-usb-audio: support for Edirol UA-4FX device
Renamed the old quirk function for ua-700/ua-25 to become more generic, moving the MIDI interfaces to the quirk data header. Added a new quirk for the Edirol UA-4FX. Signed-off-by: Pedro Lopez-Cabanillas <pedro.lopez.cabanillas@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/usb/usbquirks.h')
-rw-r--r--sound/usb/usbquirks.h54
1 files changed, 48 insertions, 6 deletions
diff --git a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h
index d96bf8b2b94b..85532cf9dbf6 100644
--- a/sound/usb/usbquirks.h
+++ b/sound/usb/usbquirks.h
@@ -862,15 +862,19 @@ YAMAHA_DEVICE(0x7010, "UB99"),
862 .data = (const struct snd_usb_audio_quirk[]) { 862 .data = (const struct snd_usb_audio_quirk[]) {
863 { 863 {
864 .ifnum = 1, 864 .ifnum = 1,
865 .type = QUIRK_AUDIO_EDIROL_UA700_UA25 865 .type = QUIRK_AUDIO_EDIROL_UAXX
866 }, 866 },
867 { 867 {
868 .ifnum = 2, 868 .ifnum = 2,
869 .type = QUIRK_AUDIO_EDIROL_UA700_UA25 869 .type = QUIRK_AUDIO_EDIROL_UAXX
870 }, 870 },
871 { 871 {
872 .ifnum = 3, 872 .ifnum = 3,
873 .type = QUIRK_AUDIO_EDIROL_UA700_UA25 873 .type = QUIRK_MIDI_FIXED_ENDPOINT,
874 .data = & (const struct snd_usb_midi_endpoint_info) {
875 .out_cables = 0x0003,
876 .in_cables = 0x0003
877 }
874 }, 878 },
875 { 879 {
876 .ifnum = -1 880 .ifnum = -1
@@ -1204,15 +1208,19 @@ YAMAHA_DEVICE(0x7010, "UB99"),
1204 .data = (const struct snd_usb_audio_quirk[]) { 1208 .data = (const struct snd_usb_audio_quirk[]) {
1205 { 1209 {
1206 .ifnum = 0, 1210 .ifnum = 0,
1207 .type = QUIRK_AUDIO_EDIROL_UA700_UA25 1211 .type = QUIRK_AUDIO_EDIROL_UAXX
1208 }, 1212 },
1209 { 1213 {
1210 .ifnum = 1, 1214 .ifnum = 1,
1211 .type = QUIRK_AUDIO_EDIROL_UA700_UA25 1215 .type = QUIRK_AUDIO_EDIROL_UAXX
1212 }, 1216 },
1213 { 1217 {
1214 .ifnum = 2, 1218 .ifnum = 2,
1215 .type = QUIRK_AUDIO_EDIROL_UA700_UA25 1219 .type = QUIRK_MIDI_FIXED_ENDPOINT,
1220 .data = & (const struct snd_usb_midi_endpoint_info) {
1221 .out_cables = 0x0001,
1222 .in_cables = 0x0001
1223 }
1216 }, 1224 },
1217 { 1225 {
1218 .ifnum = -1 1226 .ifnum = -1
@@ -1345,6 +1353,40 @@ YAMAHA_DEVICE(0x7010, "UB99"),
1345 } 1353 }
1346 } 1354 }
1347}, 1355},
1356{
1357 /*
1358 * This quirk is for the "Advanced Driver" mode. If off, the UA-4FX
1359 * is standard compliant, but has only 16-bit PCM and no MIDI.
1360 */
1361 USB_DEVICE(0x0582, 0x00a3),
1362 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
1363 .vendor_name = "EDIROL",
1364 .product_name = "UA-4FX",
1365 .ifnum = QUIRK_ANY_INTERFACE,
1366 .type = QUIRK_COMPOSITE,
1367 .data = (const struct snd_usb_audio_quirk[]) {
1368 {
1369 .ifnum = 0,
1370 .type = QUIRK_AUDIO_EDIROL_UAXX
1371 },
1372 {
1373 .ifnum = 1,
1374 .type = QUIRK_AUDIO_EDIROL_UAXX
1375 },
1376 {
1377 .ifnum = 2,
1378 .type = QUIRK_MIDI_FIXED_ENDPOINT,
1379 .data = & (const struct snd_usb_midi_endpoint_info) {
1380 .out_cables = 0x0001,
1381 .in_cables = 0x0001
1382 }
1383 },
1384 {
1385 .ifnum = -1
1386 }
1387 }
1388 }
1389},
1348 /* TODO: add Edirol MD-P1 support */ 1390 /* TODO: add Edirol MD-P1 support */
1349{ 1391{
1350 USB_DEVICE(0x582, 0x00a6), 1392 USB_DEVICE(0x582, 0x00a6),