Re: [PATCH] ALSA: usb-audio: Skip DSD quirk for Musical Fidelity M6s DAC

From: Salvador Blaya

Date: Fri Jul 10 2026 - 09:52:43 EST


Hi Takashi,

Tested on my M6s DAC with 7.0.13 plus this patch:

- Native DSD (DSD_U32_BE) is no longer offered for the device. With
MPD (dop "no", no format restrictions), playback falls back to
DSD-to-PCM conversion (S32_LE @ 352800), and both DSD64 and DSD128
test tracks now play at correct speed and pitch - same behaviour as
6.12.y. stream0 confirms altset 3 is now reported as SPECIAL (DSD
raw: DOP=0) instead of DSD_U32_BE.
- PCM playback is unaffected.

For the record: DoP (explicitly enabled in MPD with dop "yes") still
plays ~8.8% fast, but that is the device firmware defect itself,
present on all kernel versions and outside the driver's control, and
it requires explicit user configuration to trigger. The default
behaviour is now correct again.

Tested-by: Salvador Blaya <tiniebla6@xxxxxxxxx>

Thanks to you both for the quick resolution!

Salvador


El jue, 9 jul 2026 a las 11:56, Takashi Iwai (<tiwai@xxxxxxx>) escribió:
>
> Salvador reported that the recent fix for applying the DSD quirk to
> Musical Fidelity devices broke for his M6s DAC model (2772:0502).
>
> Although this is basically a firmware bug, the model in question is
> fairly old, and no further firmware update can be expected, so it'd be
> better to address in the driver side.
>
> As an ad hoc workaround, skip the DSD quirk for this device by adding
> an empty quirk entry of 2772:0502; this essentially skips the later
> DSD quirk entry by the match with the vendor 2772.
>
> Fixes: da3a7efff64e ("ALSA: usb-audio: Update for native DSD support quirks")
> Reported-by: Salvador Blaya <tiniebla6@xxxxxxxxx>
> Closes: https://lore.kernel.org/CAOdyq+qFaqCh=tK_wNnA64hv5pQuA1Y09ANxQ=xK8yR-t4mf9Q@xxxxxxxxxxxxxx
> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> ---
> sound/usb/quirks.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 2949a0d2d961..d98825f9697c 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -2463,6 +2463,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
> QUIRK_FLAG_DSD_RAW),
> DEVICE_FLG(0x2708, 0x0002, /* Audient iD14 */
> QUIRK_FLAG_IGNORE_CTL_ERROR),
> + DEVICE_FLG(0x2772, 0x0502, /* Musical Fidelity M6s DAC */
> + 0), /* for avoiding QUIRK_FLAG_DSD_RAW with vendor match */
> DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */
> QUIRK_FLAG_GET_SAMPLE_RATE),
> DEVICE_FLG(0x2a70, 0x1881, /* OnePlus Technology (Shenzhen) Co., Ltd. BE02T */
> --
> 2.54.0
>