Merge tag 'sound-5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[sfrench/cifs-2.6.git] / sound / usb / card.c
index 0826a437f8fcac17ad64fb8e3b796d2874f0ba1d..2f6a62416c057466f1c8af82d7621a8e8822714b 100644 (file)
@@ -181,9 +181,8 @@ static int snd_usb_create_stream(struct snd_usb_audio *chip, int ctrlif, int int
                                ctrlif, interface);
                        return -EINVAL;
                }
-               usb_driver_claim_interface(&usb_audio_driver, iface, (void *)-1L);
-
-               return 0;
+               return usb_driver_claim_interface(&usb_audio_driver, iface,
+                                                 USB_AUDIO_IFACE_UNUSED);
        }
 
        if ((altsd->bInterfaceClass != USB_CLASS_AUDIO &&
@@ -203,7 +202,8 @@ static int snd_usb_create_stream(struct snd_usb_audio *chip, int ctrlif, int int
 
        if (! snd_usb_parse_audio_interface(chip, interface)) {
                usb_set_interface(dev, interface, 0); /* reset the current interface */
-               usb_driver_claim_interface(&usb_audio_driver, iface, (void *)-1L);
+               return usb_driver_claim_interface(&usb_audio_driver, iface,
+                                                 USB_AUDIO_IFACE_UNUSED);
        }
 
        return 0;
@@ -713,6 +713,8 @@ static int usb_audio_probe(struct usb_interface *intf,
                quirk = get_alias_quirk(dev, id);
        if (quirk && quirk->ifnum >= 0 && ifnum != quirk->ifnum)
                return -ENXIO;
+       if (quirk && quirk->ifnum == QUIRK_NODEV_INTERFACE)
+               return -ENODEV;
 
        err = snd_usb_apply_boot_quirk(dev, intf, quirk, id);
        if (err < 0)
@@ -862,7 +864,7 @@ static void usb_audio_disconnect(struct usb_interface *intf)
        struct snd_card *card;
        struct list_head *p;
 
-       if (chip == (void *)-1L)
+       if (chip == USB_AUDIO_IFACE_UNUSED)
                return;
 
        card = chip->card;
@@ -992,7 +994,7 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
        struct usb_mixer_interface *mixer;
        struct list_head *p;
 
-       if (chip == (void *)-1L)
+       if (chip == USB_AUDIO_IFACE_UNUSED)
                return 0;
 
        if (!chip->num_suspended_intf++) {
@@ -1022,7 +1024,7 @@ static int __usb_audio_resume(struct usb_interface *intf, bool reset_resume)
        struct list_head *p;
        int err = 0;
 
-       if (chip == (void *)-1L)
+       if (chip == USB_AUDIO_IFACE_UNUSED)
                return 0;
 
        atomic_inc(&chip->active); /* avoid autopm */