ALSA: usb-audio: add native DSD support for XMOS based DACs

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>
This commit is contained in:
Jurgen Kramer 2014-09-05 18:14:46 +02:00 committed by Takashi Iwai
parent d4288d3fac
commit 848f3a82df

View 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; return 0;
} }