lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 214/247] ALSA: usb-audio: Skip generic sync EP parse for secondary EP
    Date
    From: Takashi Iwai <tiwai@suse.de>

    commit efb75df105e82f076a85b9f2d81410428bcb55fc upstream.

    When ep_idx is already non-zero, it means usually a capture stream
    that is set up explicity by a fixed-format quirk, and applying the
    check for generic (non-implicit-fb) sync EPs might hit incorrectly,
    resulting in a bogus sync endpoint for the capture stream.

    This patch adds a check for the ep_idx and skip if it's a secondary
    endpoint. It's a part of the fixes for regressions on Saffire 6.

    Fixes: 7b0efea4baf0 ("ALSA: usb-audio: Add missing ep_idx in fixed EP quirks")
    Reported-and-tested-by: André Kapelrud <a.kapelrud@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220606160910.6926-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    sound/usb/pcm.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
    index b470404a5376..b0369df53910 100644
    --- a/sound/usb/pcm.c
    +++ b/sound/usb/pcm.c
    @@ -304,7 +304,7 @@ int snd_usb_audioformat_set_sync_ep(struct snd_usb_audio *chip,
    * Generic sync EP handling
    */

    - if (altsd->bNumEndpoints < 2)
    + if (fmt->ep_idx > 0 || altsd->bNumEndpoints < 2)
    return 0;

    is_playback = !(get_endpoint(alts, 0)->bEndpointAddress & USB_DIR_IN);
    --
    2.36.1


    \
     
     \ /
      Last update: 2022-06-13 15:21    [W:4.207 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site