* only at the first time.  the successive calls of this function will
  * append the pcm interface to the corresponding card.
  */
-static void *snd_usb_audio_probe(struct usb_device *dev,
-                                struct usb_interface *intf,
-                                const struct usb_device_id *usb_id)
+static struct snd_usb_audio *
+snd_usb_audio_probe(struct usb_device *dev,
+                   struct usb_interface *intf,
+                   const struct usb_device_id *usb_id)
 {
        const struct snd_usb_audio_quirk *quirk = (const struct snd_usb_audio_quirk *)usb_id->driver_info;
        int i, err;
  * we need to take care of counter, since disconnection can be called also
  * many times as well as usb_audio_probe().
  */
-static void snd_usb_audio_disconnect(struct usb_device *dev, void *ptr)
+static void snd_usb_audio_disconnect(struct usb_device *dev,
+                                    struct snd_usb_audio *chip)
 {
-       struct snd_usb_audio *chip;
        struct snd_card *card;
        struct list_head *p;
 
-       if (ptr == (void *)-1L)
+       if (chip == (void *)-1L)
                return;
 
-       chip = ptr;
        card = chip->card;
        mutex_lock(®ister_mutex);
        mutex_lock(&chip->shutdown_mutex);
 static int usb_audio_probe(struct usb_interface *intf,
                           const struct usb_device_id *id)
 {
-       void *chip;
+       struct snd_usb_audio *chip;
        chip = snd_usb_audio_probe(interface_to_usbdev(intf), intf, id);
        if (chip) {
                usb_set_intfdata(intf, chip);