• Takashi Iwai's avatar
    ALSA: usb-audio: Register card at the last interface · 6392dcd1
    Takashi Iwai authored
    The USB-audio driver matches per interface, and as default, it
    registers the card instance at the very first instance.  This can be a
    problem for the devices that have multiple interfaces to be probed, as
    the udev rule isn't applied properly for the later appearing
    interfaces.  Although we introduced the delayed_register option and
    the quirks for covering those shortcomings, it's nothing but a
    workaround for specific devices.
    
    This patch is an another attempt to fix the problem in a more generic
    way.  Now the driver checks the whole USB device descriptor at the
    very first time when an interface is attached to a sound card.  It
    looks at each matching interface in the descriptor and remembers the
    last matching one.  The snd_card_register() is invoked only when this
    last interface is probed.
    
    After this change, the quirks for the delayed registration become
    superfluous, hence they are removed along with the patch.  OTOH, the
    delayed_register option is still kept, as it might be useful for some
    corner cases (e.g. a special driver overtakes the interface probe from
    the standard driver, and the last interface probe may miss).
    
    Link: https://lore.kernel.org/r/20220904161247.16461-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    6392dcd1
quirks.h 1.61 KB