aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/usb/quirks.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index d2aa45a8d895..e9ff3a6c60e4 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -58,9 +58,17 @@ static int create_composite_quirk(struct snd_usb_audio *chip,
58 err = snd_usb_create_quirk(chip, iface, driver, quirk); 58 err = snd_usb_create_quirk(chip, iface, driver, quirk);
59 if (err < 0) 59 if (err < 0)
60 return err; 60 return err;
61 if (quirk->ifnum != probed_ifnum) 61 }
62
63 for (quirk = quirk->data; quirk->ifnum >= 0; ++quirk) {
64 iface = usb_ifnum_to_if(chip->dev, quirk->ifnum);
65 if (!iface)
66 continue;
67 if (quirk->ifnum != probed_ifnum &&
68 !usb_interface_claimed(iface))
62 usb_driver_claim_interface(driver, iface, (void *)-1L); 69 usb_driver_claim_interface(driver, iface, (void *)-1L);
63 } 70 }
71
64 return 0; 72 return 0;
65} 73}
66 74