diff options
-rw-r--r-- | sound/usb/quirks.c | 10 |
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 | ||