Skip to content

Commit 2bc16b9

Browse files
manuel-rhdttiwai
authored andcommitted
ALSA: usb-audio: Fix implicit fb endpoint setup by quirk
The commit a60945f ("ALSA: usb-audio: move implicit fb quirks to separate function") introduced an error in the handling of quirks for implicit feedback endpoints. This commit fixes this. If a quirk successfully sets up an implicit feedback endpoint, usb-audio no longer tries to find the implicit fb endpoint itself. Fixes: a60945f ("ALSA: usb-audio: move implicit fb quirks to separate function") Signed-off-by: Manuel Reinhardt <manuel.rhdt@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 4cd3016 commit 2bc16b9

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

sound/usb/pcm.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,9 @@ static int search_roland_implicit_fb(struct usb_device *dev, int ifnum,
314314
return 0;
315315
}
316316

317+
/* Setup an implicit feedback endpoint from a quirk. Returns 0 if no quirk
318+
* applies. Returns 1 if a quirk was found.
319+
*/
317320
static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
318321
struct usb_device *dev,
319322
struct usb_interface_descriptor *altsd,
@@ -384,7 +387,7 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
384387

385388
subs->data_endpoint->sync_master = subs->sync_endpoint;
386389

387-
return 0;
390+
return 1;
388391
}
389392

390393
static int set_sync_endpoint(struct snd_usb_substream *subs,
@@ -423,6 +426,10 @@ static int set_sync_endpoint(struct snd_usb_substream *subs,
423426
if (err < 0)
424427
return err;
425428

429+
/* endpoint set by quirk */
430+
if (err > 0)
431+
return 0;
432+
426433
if (altsd->bNumEndpoints < 2)
427434
return 0;
428435

0 commit comments

Comments
 (0)