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 11:34:44 +0300
Newsgroups org.alsa-project.alsa-devel,dev.linux.lists.regressions
Message-ID <[email protected]>
This is of course OK for me if it works. The newer Musical Fidelity =
devices work fine. For example M3x, M6x, M8x, MX and likely upcoming new =
ones.

So I would rather go with blacklisting broken ones.


	- Jussi


> On 9. Jul 2026, at 10.33, Takashi Iwai <[email protected]> wrote:
>=20
> On Thu, 09 Jul 2026 00:28:00 +0200,
> Jussi Laako wrote:
>>=20
>> Hi,
>>=20
>> 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.
>=20
> While I fully agree that white-listing all needed devices won't scale,
> blacklisting the broken device might work.  We can an empty quirk
> entry for 2772:0502 for skipping the vendor match, something like
> below, as an ad hoc fix.
>=20
> Though, this blindly assumes that there aren't so many broken devices,
> and there will be no firmware fix or another model that works with the
> same ID.  If a model is relatively new and/or the vendor often updates
> the firmware, such an entry can be risky, too.
>=20
>=20
> thanks,
>=20
> Takashi
>=20
> -- 8< --
> --- 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[] =3D {
>   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 */