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 v1: - use specific product id and alt setting per XMOS based device
Signed-off-by: Jurgen Kramer gtmkramer@xs4all.nl --- sound/usb/quirks.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 19a921e..5ae0536 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -1174,5 +1174,20 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip, } }
+ /* XMOS based USB DACs */ + if (le16_to_cpu(chip->dev->descriptor.idVendor) == 0x20b1) { + switch (le16_to_cpu(chip->dev->descriptor.idProduct)) { + /* iFi Audio micro/nano iDSD */ + case 0x3008: + if (fp->altsetting == 2) + return SNDRV_PCM_FMTBIT_DSD_U32_LE; + /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */ + case 0x2009: + if (fp->altsetting == 3) + return SNDRV_PCM_FMTBIT_DSD_U32_LE; + default: + return 0; + } + } return 0; }