ALSA: usb-audio: Choose audioformat of a counter-part substream
authorTakashi Iwai <tiwai@suse.de>
Fri, 8 Jan 2021 07:52:16 +0000 (08:52 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 8 Jan 2021 22:43:36 +0000 (23:43 +0100)
commit5d15f1eb456025cf47078fdbc230d7a9f1ee4cef
treef6ac61cfe623ac36ce5e9a398696561b5577dd56
parentb2345a8a4342cf83316a2198fa915c7c99b7d6c7
ALSA: usb-audio: Choose audioformat of a counter-part substream

The implicit feedback mode needs to handle two endpoints and the
choice of the audioformat object for the sync EP is important since
this determines the compatibility of the hw_params.  The current code
uses the same audioformat object if both the main EP and the sync EP
point to the same iface/altsetting.  This was done in consideration of
the non-implicit-fb sync EP handling, and it doesn't match well with
the cases where actually to endpoints are defined in the sameiface /
altsetting like a few Pioneer devices.

Modify snd_usb_find_implicit_fb_sync_format() to pick up the
audioformat that is assigned in the counter-part substreams primarily,
so that the actual capture stream can be opened properly.  We keep the
same audioformat object only as a fallback in case nothing found,
though.

Fixes: 9fddc15e8039 ("ALSA: usb-audio: Factor out the implicit feedback quirk code")
Link: https://lore.kernel.org/r/20210108075219.21463-3-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/implicit.c