• Takashi Iwai's avatar
    ALSA: usb-audio: Fix the missing endpoints creations for quirks · b2345a8a
    Takashi Iwai authored
    The recent change in the endpoint management moved the endpoint object
    creation from the stream open time to the parser of the audio
    descriptor.  It works fine for the standard audio, but it overlooked
    the other places that create audio streams via quirks
    (QUIRK_AUDIO_FIXED_ENDPOINT) like the reported a few Pioneer devices;
    those call snd_usb_add_audio_stream() manually, hence they miss the
    endpoints, eventually resulting in the error at opening streams.
    Moreover, now the sync EP setup was moved to the explicit call of
    snd_usb_audioformat_set_sync_ep(), and this needs to be added for
    those places, too.
    
    This patch addresses those regressions for quirks.  It adds a local
    helper function add_audio_stream_from_fixed_fmt(), which does the all
    needed tasks, and replaces the calls of snd_usb_add_audio_stream()
    with this new function.
    
    Fixes: 54cb3190 ("ALSA: usb-audio: Create endpoint objects at parsing phase")
    Reported-by: default avatarFrantišek Kučera <konference@frantovo.cz>
    Link: https://lore.kernel.org/r/20210108075219.21463-2-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    b2345a8a
quirks.c 55.4 KB