mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
ALSA: usb-audio: Fix last interface check for registration
The recent fix in commit6392dcd1d0
("ALSA: usb-audio: Register card at the last interface") tried to delay the card registration until the last found interface is probed. It assumed that the probe callback gets called for those later interfaces, but it's not always true; as the driver loops over the descriptor and probes the matching ones, it's not separately called via multiple probe calls. This results in the missing card registration, i.e. no sound device. For addressing this problem, replace the check whether the last interface is processed with usb_interface_claimed() instead of the comparison with the probe interface number. Fixes:6392dcd1d0
("ALSA: usb-audio: Register card at the last interface") Link: https://lore.kernel.org/r/20220915085947.7922-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a74bfc9eaa
commit
39efc9c8a9
@ -884,7 +884,7 @@ static int usb_audio_probe(struct usb_interface *intf,
|
||||
* one given via option
|
||||
*/
|
||||
if (check_delayed_register_option(chip) == ifnum ||
|
||||
chip->last_iface == ifnum) {
|
||||
usb_interface_claimed(usb_ifnum_to_if(dev, chip->last_iface))) {
|
||||
err = snd_card_register(chip->card);
|
||||
if (err < 0)
|
||||
goto __error;
|
||||
|
Loading…
Reference in New Issue
Block a user