2022-02-14 10:02:17

by Matteo Martelli

[permalink] [raw]
Subject: [PATCH 0/1] ALSA: usb-audio: generic implicit fb parser fails with M-Audio FastTrack Ultra

Hello, I've recently started to experience periodic XRUNs with my M-Audio
FastTrack Ultra while using JACK.
The XRUNs come systematically at precise intervals, where the period
varies from around 1 min to 6 min depending on the jackd buffer settings.
I found out that issue is reproducible since commit
83b7dcbc51c930fc2079ab6c6fc9d719768321f1.

It looks like the problem is in the add_generic_implicit_fb() function
where (fmt->ep_attr & USB_ENDPOINT_SYNCTYPE) is USB_ENDPOINT_SYNC_ADAPTIVE
instead of the expected USB_ENDPOINT_SYNC_ASYNC. This leads to the
failure of the snd_usb_parse_implicit_fb_quirk(), so I guess the
implicit feedback feature is not used at all, resulting to periodic
XRUNs. However, by retrieving the endpoint descriptor with the
get_endpoint(alts, 0) macro, the endpoint mbAttributes are correct and
match the USB_ENDPOINT_SYNC_ASYNC sync type. Also, the attributes
printed by lsusb are again correct showing the "Asynchronous" type.
In fact, the sync type is set to adaptive for the M-Audio FastTrack
Ultra in the quirks-table.h header file. This was done by the commit
65f04443c96dbda11b8fff21d6390e082846aa3c to work around a playback
issue.

I tested my 0x2080 device with the 5.17-rc1, 5.16, 5.11-rc1, 5.10.
The issue is reproducible with all of them except for the 5.10 where the
implicit feedback was still declared as "fixed".
I also had the chance to have the 0x2081 device tested with kernel
5.16, same issue there.
The following patch is to revert the implicit feedback to "fixed" for the
M-Audio FastTrack Ultra cards until the issue is not entirely covered.

Matteo Martelli (1):
ALSA: usb-audio: revert to IMPLICIT_FB_FIXED_DEV for M-Audio FastTrack
Ultra

sound/usb/implicit.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--
2.35.1