[ALSA] snd_usb_caiaq: add support for 'Session I/O' interface
[sfrench/cifs-2.6.git] / sound / usb / caiaq / caiaq-device.c
index 379e6082756f6506bf97267378829fe0cbf42c21..83175083e50f8c60852cc0250fd26ace2038afba 100644 (file)
 #endif
 
 MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>");
-MODULE_DESCRIPTION("caiaq USB audio, version 1.3.5");
+MODULE_DESCRIPTION("caiaq USB audio, version 1.3.8");
 MODULE_LICENSE("GPL");
 MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2},"
                         "{Native Instruments, RigKontrol3},"
                         "{Native Instruments, Kore Controller},"
                         "{Native Instruments, Kore Controller 2},"
-                        "{Native Instruments, Audio Kontrol 1}"
-                        "{Native Instruments, Audio 8 DJ}}");
+                        "{Native Instruments, Audio Kontrol 1},"
+                        "{Native Instruments, Audio 8 DJ},"
+                        "{Native Instruments, Session I/O}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-max */
 static char* id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* Id for this card */
@@ -110,6 +111,11 @@ static struct usb_device_id snd_usb_id_table[] = {
                .idVendor =     USB_VID_NATIVEINSTRUMENTS,
                .idProduct =    USB_PID_AUDIO8DJ
        },
+       {
+               .match_flags =  USB_DEVICE_ID_MATCH_DEVICE,
+               .idVendor =     USB_VID_NATIVEINSTRUMENTS,
+               .idProduct =    USB_PID_SESSIONIO
+       },
        { /* terminator */ }
 };
 
@@ -351,8 +357,8 @@ static struct snd_card* create_card(struct usb_device* usb_dev)
        dev = caiaqdev(card);
        dev->chip.dev = usb_dev;
        dev->chip.card = card;
-       dev->chip.usb_id = USB_ID(usb_dev->descriptor.idVendor,
-                                       usb_dev->descriptor.idProduct);
+       dev->chip.usb_id = USB_ID(le16_to_cpu(usb_dev->descriptor.idVendor),
+                                 le16_to_cpu(usb_dev->descriptor.idProduct));
        spin_lock_init(&dev->spinlock);
        snd_card_set_dev(card, &usb_dev->dev);