Skip to content

Commit 08535c2

Browse files
bruce-awareitgregkh
authored andcommitted
ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series
[ Upstream commit 21a9ab5 ] The PureAudio APA DAC and Lotus DAC5 series are USB Audio 2.0 Class devices that support native Direct Stream Digital (DSD) playback via specific vendor protocols. Without these quirks, the devices may only function in standard PCM mode, or fail to correctly report their DSD format capabilities to the ALSA framework, preventing native DSD playback under Linux. This commit adds new quirk entries for the mentioned DAC models based on their respective Vendor/Product IDs (VID:PID), for example: 0x16d0:0x0ab1 (APA DAC), 0x16d0:0xeca1 (DAC5 series), etc. The quirk ensures correct DSD format handling by setting the required SNDRV_PCM_FMTBIT_DSD_U32_BE format bit and defining the DSD-specific Audio Class 2.0 (AC2.0) endpoint configurations. This allows the ALSA DSD API to correctly address the device for high-bitrate DSD streams, bypassing the need for DoP (DSD over PCM). Test on APA DAC and Lotus DAC5 SE under Arch Linux. Tested-by: Lushih Hsieh <bruce@mail.kh.edu.tw> Signed-off-by: Lushih Hsieh <bruce@mail.kh.edu.tw> Link: https://patch.msgid.link/20251114052053.54989-1-bruce@mail.kh.edu.tw Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 4c50a9b commit 08535c2

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

sound/usb/quirks.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2022,6 +2022,8 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
20222022
case USB_ID(0x16d0, 0x09d8): /* NuPrime IDA-8 */
20232023
case USB_ID(0x16d0, 0x09db): /* NuPrime Audio DAC-9 */
20242024
case USB_ID(0x16d0, 0x09dd): /* Encore mDSD */
2025+
case USB_ID(0x16d0, 0x0ab1): /* PureAudio APA DAC */
2026+
case USB_ID(0x16d0, 0xeca1): /* PureAudio Lotus DAC5, DAC5 SE, DAC5 Pro */
20252027
case USB_ID(0x1db5, 0x0003): /* Bryston BDA3 */
20262028
case USB_ID(0x20a0, 0x4143): /* WaveIO USB Audio 2.0 */
20272029
case USB_ID(0x22e1, 0xca01): /* HDTA Serenade DSD */
@@ -2289,6 +2291,10 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
22892291
QUIRK_FLAG_IGNORE_CLOCK_SOURCE),
22902292
DEVICE_FLG(0x1686, 0x00dd, /* Zoom R16/24 */
22912293
QUIRK_FLAG_TX_LENGTH | QUIRK_FLAG_CTL_MSG_DELAY_1M),
2294+
DEVICE_FLG(0x16d0, 0x0ab1, /* PureAudio APA DAC */
2295+
QUIRK_FLAG_DSD_RAW),
2296+
DEVICE_FLG(0x16d0, 0xeca1, /* PureAudio Lotus DAC5, DAC5 SE and DAC5 Pro */
2297+
QUIRK_FLAG_DSD_RAW),
22922298
DEVICE_FLG(0x17aa, 0x1046, /* Lenovo ThinkStation P620 Rear Line-in, Line-out and Microphone */
22932299
QUIRK_FLAG_DISABLE_AUTOSUSPEND),
22942300
DEVICE_FLG(0x17aa, 0x104d, /* Lenovo ThinkStation P620 Internal Speaker + Front Headset */

0 commit comments

Comments
 (0)