smb3: allow uid and gid owners to be set on create with idsfromsid mount option
[linux-2.6-microblaze.git] / sound / usb / quirks-table.h
index eb89902..6d64921 100644 (file)
        .idProduct = prod, \
        .bInterfaceClass = USB_CLASS_VENDOR_SPEC
 
+#define QUIRK_RENAME_DEVICE(_vendor, _device)                          \
+       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { \
+               .vendor_name = _vendor,                                 \
+               .product_name = _device,                                \
+               .ifnum = QUIRK_NO_INTERFACE                             \
+       }
+
+#define QUIRK_DEVICE_PROFILE(_vendor, _device, _profile)               \
+       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { \
+               .vendor_name = _vendor,                                 \
+               .product_name = _device,                                \
+               .profile_name = _profile,                               \
+               .ifnum = QUIRK_NO_INTERFACE                             \
+       }
+
 /* FTDI devices */
 {
        USB_DEVICE(0x0403, 0xb8d8),
 /* Creative/E-Mu devices */
 {
        USB_DEVICE(0x041e, 0x3010),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Creative Labs",
-               .product_name = "Sound Blaster MP3+",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("Creative Labs", "Sound Blaster MP3+")
 },
 /* Creative/Toshiba Multimedia Center SB-0500 */
 {
        USB_DEVICE(0x041e, 0x3048),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Toshiba",
-               .product_name = "SB-0500",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("Toshiba", "SB-0500")
 },
 {
        /* E-Mu 0202 USB */
        .idProduct = 0x0990,
        .bInterfaceClass = USB_CLASS_AUDIO,
        .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Logitech, Inc.",
-               .product_name = "QuickCam Pro 9000",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("Logitech, Inc.", "QuickCam Pro 9000")
 },
 
 /*
@@ -2596,11 +2599,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
 },
 {
        USB_DEVICE(0x0ccd, 0x0028),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "TerraTec",
-               .product_name = "Aureon5.1MkII",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("TerraTec", "Aureon5.1MkII")
 },
 {
        USB_DEVICE(0x0ccd, 0x0035),
@@ -2615,19 +2614,11 @@ YAMAHA_DEVICE(0x7010, "UB99"),
 /* Stanton/N2IT Final Scratch v1 device ('Scratchamp') */
 {
        USB_DEVICE(0x103d, 0x0100),
-               .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Stanton",
-               .product_name = "ScratchAmp",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("Stanton", "ScratchAmp")
 },
 {
        USB_DEVICE(0x103d, 0x0101),
-               .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Stanton",
-               .product_name = "ScratchAmp",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("Stanton", "ScratchAmp")
 },
 
 /* Novation EMS devices */
@@ -2788,11 +2779,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
 {
        /* aka. Serato Scratch Live DJ Box */
        USB_DEVICE(0x13e5, 0x0001),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Rane",
-               .product_name = "SL-1",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE("Rane", "SL-1")
 },
 
 /* Native Instruments MK2 series */
@@ -3259,10 +3246,7 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
         * is also used by the CM106 based cards, so make it unique.
         */
        USB_DEVICE(0x0d8c, 0x0103),
-       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
-               .product_name = "Audio Advantage MicroII",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_RENAME_DEVICE(NULL, "Audio Advantage MicroII")
 },
 
 /* disabled due to regression for other devices;
@@ -3368,12 +3352,7 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
 /* Dell WD15 Dock */
 {
        USB_DEVICE(0x0bda, 0x4014),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Dell",
-               .product_name = "WD15 Dock",
-               .profile_name = "Dell-WD15-Dock",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_DEVICE_PROFILE("Dell", "WD15 Dock", "Dell-WD15-Dock")
 },
 /* Dell WD19 Dock */
 {
@@ -3553,12 +3532,8 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
 
 #define ALC1220_VB_DESKTOP(vend, prod) { \
        USB_DEVICE(vend, prod), \
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { \
-               .vendor_name = "Realtek", \
-               .product_name = "ALC1220-VB-DT", \
-               .profile_name = "Realtek-ALC1220-VB-Desktop", \
-               .ifnum = QUIRK_NO_INTERFACE \
-       } \
+       QUIRK_DEVICE_PROFILE("Realtek", "ALC1220-VB-DT", \
+                            "Realtek-ALC1220-VB-Desktop") \
 }
 ALC1220_VB_DESKTOP(0x0414, 0xa002), /* Gigabyte TRX40 Aorus Pro WiFi */
 ALC1220_VB_DESKTOP(0x0db0, 0x0d64), /* MSI TRX40 Creator */
@@ -3574,20 +3549,75 @@ ALC1220_VB_DESKTOP(0x26ce, 0x0a01), /* Asrock TRX40 Creator */
  */
 {
        USB_DEVICE(0x0414, 0xa000),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Gigabyte",
-               .product_name = "Aorus Master Front Headphone",
-               .profile_name = "Gigabyte-Aorus-Master-Front-Headphone",
-               .ifnum = QUIRK_NO_INTERFACE
-       }
+       QUIRK_DEVICE_PROFILE("Gigabyte", "Aorus Master Front Headphone",
+                            "Gigabyte-Aorus-Master-Front-Headphone")
 },
 {
        USB_DEVICE(0x0414, 0xa001),
-       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
-               .vendor_name = "Gigabyte",
-               .product_name = "Aorus Master Main Audio",
-               .profile_name = "Gigabyte-Aorus-Master-Main-Audio",
-               .ifnum = QUIRK_NO_INTERFACE
+       QUIRK_DEVICE_PROFILE("Gigabyte", "Aorus Master Main Audio",
+                            "Gigabyte-Aorus-Master-Main-Audio")
+},
+{
+       /*
+        * Pioneer DJ DJM-900NXS2
+        * 10 channels playback & 12 channels capture @ 44.1/48/96kHz S24LE
+        */
+       USB_DEVICE_VENDOR_SPEC(0x2b73, 0x000a),
+       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+               .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_S24_3LE,
+                                       .channels = 10,
+                                       .iface = 0,
+                                       .altsetting = 1,
+                                       .altset_idx = 1,
+                                       .endpoint = 0x01,
+                                       .ep_attr = USB_ENDPOINT_XFER_ISOC|
+                                           USB_ENDPOINT_SYNC_ASYNC,
+                                       .rates = SNDRV_PCM_RATE_44100|
+                                           SNDRV_PCM_RATE_48000|
+                                           SNDRV_PCM_RATE_96000,
+                                       .rate_min = 44100,
+                                       .rate_max = 96000,
+                                       .nr_rates = 3,
+                                       .rate_table = (unsigned int[]) {
+                                               44100, 48000, 96000
+                                       }
+                               }
+                       },
+                       {
+                               .ifnum = 0,
+                               .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+                               .data = &(const struct audioformat) {
+                                       .formats = SNDRV_PCM_FMTBIT_S24_3LE,
+                                       .channels = 12,
+                                       .iface = 0,
+                                       .altsetting = 1,
+                                       .altset_idx = 1,
+                                       .endpoint = 0x82,
+                                       .ep_attr = USB_ENDPOINT_XFER_ISOC|
+                                           USB_ENDPOINT_SYNC_ASYNC|
+                                           USB_ENDPOINT_USAGE_IMPLICIT_FB,
+                                       .rates = SNDRV_PCM_RATE_44100|
+                                           SNDRV_PCM_RATE_48000|
+                                           SNDRV_PCM_RATE_96000,
+                                       .rate_min = 44100,
+                                       .rate_max = 96000,
+                                       .nr_rates = 3,
+                                       .rate_table = (unsigned int[]) {
+                                               44100, 48000, 96000
+                                       }
+                               }
+                       },
+                       {
+                               .ifnum = -1
+                       }
+               }
        }
 },