Re: [REGRESSION] snd-usb-audio: commit da3a7efff64e ("ALSA: usb-audio: Update for native DSD support quirks") breaks DSD playback on Musical Fidelity M6s DAC (2772:0502), plays ~8.8% fast

Jussi Laako <[email protected]> Thu, 9 Jul 2026 01:28:00 +0300
Newsgroups org.alsa-project.alsa-devel,dev.linux.lists.regressions
Message-ID <[email protected]>
Hi,

I don=E2=80=99t think we currently have exclusion method for devices =
with buggy firmware, which claim to support native DSD, but do it =
incorrectly. And reverting with device specific white-listing is not a =
good approach for future maintenance. Having to device-specific =
white-list each new device appearing on the market from the manufacturer =
just because some old device is broken is not really a sustainable =
model.

So I would just suggest using PCM with the device if it=E2=80=99s DSD =
implementation is buggy/broken, while it claims to have such. Or =
alternatively update the firmware with a fixed one.

Newer MuFi devices work fine though, like for example the M3x DAC I have =
for testing this, and the M6x you mention.

Additional challenge is that many manufacturers use the same USB =
interface implementation with same VID:PID on multiple different =
products. So it is not even necessarily possible to distinguish a =
particular problematic product.


Best regards,

	- Jussi


> On 8. Jul 2026, at 19.33, Salvador Blaya <[email protected]> wrote:
>=20
> To: [email protected]
> Cc: [email protected], [email protected], [email protected]
> Subject: [REGRESSION] snd-usb-audio: commit da3a7ef ("ALSA: usb-audio:
> Update for native DSD support quirks") breaks DSD playback on Musical
> Fidelity M6s DAC (2772:0502), plays ~8.8% fast
>=20
> Hi,
>=20
> Commit da3a7efff64e ("ALSA: usb-audio: Update for native DSD support
> quirks") added VENDOR_FLG(0x2772) with QUIRK_FLAG_DSD_RAW for Musical
> Fidelity devices. This vendor-wide match also catches the (older,
> discontinued) Musical Fidelity M6s DAC, USB ID 2772:0502, which =
exposes
> a UAC2 altsetting with bmFormats 0x80000000 (RAW_DATA, 32-bit) but
> whose firmware cannot actually clock DSD playback correctly in any
> mode. As a result, since this commit, applications like MPD prefer the
> newly offered native DSD over DSD-to-PCM conversion and playback is
> audibly broken (runs ~8.8% fast, raised pitch), where kernels without
> the commit (e.g. 6.12.x) play correctly.
>=20
> Could 2772:0502 be excluded from the vendor flag (or the vendor flag
> be narrowed to the specific products that support native DSD, such as
> the newer M6x DAC)?
>=20
> Evidence gathered on Debian trixie, MPD, direct hw: access, no
> resampling:
>=20
> 1) Native DSD (observed on 7.0.7 through 7.0.12): host side is correct
>   - hw_params shows format DSD_U32_BE, rate 88200 (correct for DSD64)
>   - but playback runs ~8.8% fast with raised pitch. A 4:41 track
>   finishes in ~4:15, matching a 48 kHz-family clock (3.072 MHz)
>   applied to a 2.8224 MHz DSD64 stream (ratio 1.0884).
>=20
> 2) DoP (6.12.9, MPD dop=3Dyes): host side again correct - hw_params
>   shows S32_LE, rate 176400 - same ~8.8% fast playback. So the DAC's
>   internal DSD decoding path is misclocked regardless of transport.
>=20
> 3) Control test: the same DSD64 track converted to PCM FLAC at
>   176400 Hz plays at correct speed/pitch through the exact same path
>   (S32_LE @ 176400). The 44.1 kHz rate family is fine for PCM; only
>   DSD decoding inside the DAC is broken. This rules out any host-side
>   rate issue.
>=20
> 4) The same fault has long been reported for this DAC on Windows 10
>   with the official ASIO driver ("DSD via DoP plays noticeably
>   faster"):
>   =
https://community.roonlabs.com/t/musical-fidelity-m6-sdac-dsd-issues/39450=

>   including a follow-up for the successor model (M6sR). This is an
>   OS-independent firmware defect that the manufacturer never fixed,
>   which is presumably why this model was specified as DoP-only.
>=20
> Working configuration for reference (correct playback): MPD with
> dop "no", MPD's dsd2pcm conversion to 352800 Hz - i.e. the behaviour
> kernels without the commit provide by default for this device.
>=20
> Since these quirk updates tend to be backported to stable/LTS trees,
> please consider the fix for stable as well, so that currently working
> LTS kernels (e.g. 6.12.y) don't regress.
>=20
> Full lsusb -v output attached. Happy to test patches.
>=20
> #regzbot introduced: da3a7efff64ec0d63af4499eea3a46a2e13b5797
>=20
> Please CC me on replies, I'm not subscribed to the list.
>=20
> Best regards,
>=20
> S. Blaya
> <m6sdac-lsusb.txt>