ALSA: usb-audio: add Edirol SD-90 PCM support
authorClemens Ladisch <clemens@ladisch.de>
Mon, 10 Jan 2011 15:30:54 +0000 (16:30 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 10 Jan 2011 15:47:10 +0000 (16:47 +0100)
Add support for the 24-bit audio I/Os of the Edirol SD-90 interface.

Reported-any-tested-by: Jim Grusendorf <alsa-user@grusendorf.ca>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/format.c
sound/usb/quirks-table.h

index 69148212aa70e66f9e1193040bfb41aad5548b6b..5b792d2c8061aa0292595186d8cf60fadf8456dc 100644 (file)
@@ -76,7 +76,10 @@ static u64 parse_audio_format_i_type(struct snd_usb_audio *chip,
                format = 1 << UAC_FORMAT_TYPE_I_PCM;
        }
        if (format & (1 << UAC_FORMAT_TYPE_I_PCM)) {
-               if (sample_width > sample_bytes * 8) {
+               if (chip->usb_id == USB_ID(0x0582, 0x0016) /* Edirol SD-90 */ &&
+                   sample_width == 24 && sample_bytes == 2)
+                       sample_bytes = 3;
+               else if (sample_width > sample_bytes * 8) {
                        snd_printk(KERN_INFO "%d:%u:%d : sample bitwidth %d in over sample bytes %d\n",
                                   chip->dev->devnum, fp->iface, fp->altsetting,
                                   sample_width, sample_bytes);
index ad7079d1676cd1607b7cc161b4c2dfff6651a5eb..35999874d301b68d3dd7aa6f0ce53e7a526d506c 100644 (file)
@@ -705,11 +705,11 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                .data = (const struct snd_usb_audio_quirk[]) {
                        {
                                .ifnum = 0,
-                               .type = QUIRK_IGNORE_INTERFACE
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = 1,
-                               .type = QUIRK_IGNORE_INTERFACE
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = 2,