OSDN Git Service

ALSA: usb-audio: add native DSD support for XMOS based DACs
authorJurgen Kramer <gtmkramer@xs4all.nl>
Fri, 5 Sep 2014 16:14:46 +0000 (18:14 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 8 Sep 2014 15:11:39 +0000 (17:11 +0200)
Add quirks for XMOS based DACs for native DSD playback support using the new
DSD_U32_LE sample format.

This version adds native DSD support for:
- iFi Audio micro iDSD/nano iDSD (they use the same prod. id)
- DIYINHK USB to I2S/DSD converter

Changes from v2:
- fix and simplify switch statement
Changes from v1:
- use specific product id and alt setting per XMOS based device

[fixed a misc coding style issue by tiwai]

Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/quirks.c

index 19a921e..d2aa45a 100644 (file)
@@ -1174,5 +1174,21 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
                }
        }
 
+       /* XMOS based USB DACs */
+       switch (chip->usb_id) {
+       /* iFi Audio micro/nano iDSD */
+       case USB_ID(0x20b1, 0x3008):
+               if (fp->altsetting == 2)
+                       return SNDRV_PCM_FMTBIT_DSD_U32_LE;
+               break;
+       /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
+       case USB_ID(0x20b1, 0x2009):
+               if (fp->altsetting == 3)
+                       return SNDRV_PCM_FMTBIT_DSD_U32_LE;
+               break;
+       default:
+               break;
+       }
+
        return 0;
 }