linux/sound
Lushih Hsieh 21a9ab5b90 ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series
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>
2025-11-14 14:19:47 +01:00
..
ac97 ALSA: ac97bus: Use guard() for mutex locks 2025-09-01 13:54:28 +02:00
aoa ALSA: aoa: Remove redundant size arguments from strscpy() 2025-09-12 07:54:40 +02:00
arm ALSA: arm: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
atmel ALSA: atmel: Use guard() for mutex locks 2025-09-01 13:54:28 +02:00
core sound updates for 6.18-rc1 2025-10-02 11:37:19 -07:00
drivers ALSA: serial-generic: remove shared static buffer 2025-09-15 12:33:53 +02:00
firewire ALSA: firewire: amdtp-stream: fix enum kernel-doc warnings 2025-10-14 15:12:52 +02:00
hda ALSA: hda/tas2781: Correct the wrong project ID 2025-11-12 10:33:17 +01:00
i2c ALSA: i2c: Use guard() for spin locks 2025-09-01 13:54:26 +02:00
isa ALSA: wavefront: Use guard() for spin locks 2025-09-01 13:53:03 +02:00
mips ALSA: snd-n64: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
oss
parisc ALSA: parisc: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
pci ALSA: asihpi: Simplify error handling in PCM substream setup 2025-09-15 09:25:47 +02:00
pcmcia ALSA: vxpocket: Use guard() for mutex locks 2025-09-01 13:54:27 +02:00
ppc ALSA: ppc: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
sh ALSA: sh: Use safer strscpy() instead of strcpy() 2025-07-11 09:53:35 +02:00
soc ASoC: rsnd: fix OF node reference leak in rsnd_ssiu_probe() 2025-11-13 00:36:01 +00:00
sparc ALSA: sparc/dbri: Use guard() for spin locks 2025-09-10 13:20:01 +02:00
spi ALSA: spi/at73c213: Use guard() for spin locks 2025-09-17 14:07:02 +02:00
synth ALSA: synth: Use guard() for preset locks 2025-09-01 13:54:27 +02:00
usb ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series 2025-11-14 14:19:47 +01:00
virtio ALSA: virtio: Use guard() for spin locks 2025-09-01 13:54:28 +02:00
x86 ALSA: x86: Use guard() for spin locks 2025-09-01 13:54:27 +02:00
xen ALSA: xen: Use guard() for mutex locks 2025-09-01 13:54:27 +02:00
Kconfig
Makefile
ac97_bus.c
last.c
sound_core.c