Update of /cvsroot/alsa/alsa-kernel/usb
In directory usw-pr-cvs1:/tmp/cvs-serv660

Modified Files:
        usbaudio.c 
Log Message:
- added the missing dev_set_drvdata() for 2.5 API.
- simplified the conexistence of old and new USB APIs.



Index: usbaudio.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbaudio.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- usbaudio.c  3 Oct 2002 17:20:37 -0000       1.14
+++ usbaudio.c  4 Oct 2002 12:27:41 -0000       1.15
@@ -1308,14 +1308,16 @@
  * entry point for linux usb interface
  */
 
-#ifndef OLD_USB
+static void * _usb_audio_probe(struct usb_device *dev, unsigned int ifnum,
+                             const struct usb_device_id *id);
+static void _usb_audio_disconnect(struct usb_device *dev, void *ptr);
+#ifdef OLD_USB
+#define usb_audio_probe                _usb_audio_probe
+#define usb_audio_disconnect   _usb_audio_disconnect
+#else
 static int usb_audio_probe(struct usb_interface *intf,
                           const struct usb_device_id *id);
 static void usb_audio_disconnect(struct usb_interface *intf);
-#else
-static void * usb_audio_probe(struct usb_device *dev, unsigned int ifnum,
-                             const struct usb_device_id *id);
-static void usb_audio_disconnect(struct usb_device *dev, void *ptr);
 #endif
 
 static struct usb_device_id usb_audio_ids [] = {
@@ -2066,18 +2068,9 @@
  * only at the first time.  the successive calls of this function will
  * append the pcm interface to the corresponding card.
  */
-#ifndef OLD_USB
-static int usb_audio_probe(struct usb_interface *intf,
-                          const struct usb_device_id *id)
-#else
-static void *usb_audio_probe(struct usb_device *dev, unsigned int ifnum,
+static void *_usb_audio_probe(struct usb_device *dev, unsigned int ifnum,
                             const struct usb_device_id *id)
-#endif
 {
-#ifndef OLD_USB
-       struct usb_device *dev = interface_to_usbdev(intf);
-       int ifnum = intf->altsetting->bInterfaceNumber;
-#endif
        struct usb_config_descriptor *config = dev->actconfig;  
        const snd_usb_audio_quirk_t *quirk = (const snd_usb_audio_quirk_t 
*)id->driver_info;
        unsigned char *buffer;
@@ -2159,37 +2152,21 @@
        chip->num_interfaces++;
        up(&register_mutex);
        kfree(buffer);
-#ifndef OLD_USB
-       return 0;
-#else
        return chip;
-#endif
 
  __error:
        up(&register_mutex);
        kfree(buffer);
  __err_val:
-#ifndef OLD_USB
-       return -EIO;
-#else
        return NULL;
-#endif
 }
 
-
 /*
  * we need to take care of counter, since disconnection can be called also
  * many times as well as usb_audio_probe(). 
  */
-#ifndef OLD_USB
-static void usb_audio_disconnect(struct usb_interface *intf)
-#else
-static void usb_audio_disconnect(struct usb_device *dev, void *ptr)
-#endif
+static void _usb_audio_disconnect(struct usb_device *dev, void *ptr)
 {
-#ifndef OLD_USB
-       void *ptr = dev_get_drvdata(&intf->dev);
-#endif
        snd_usb_audio_t *chip;
 
        if (ptr == (void *)-1)
@@ -2200,6 +2177,34 @@
        if (chip->num_interfaces <= 0)
                snd_card_free(chip->card);
 }
+
+
+#ifndef OLD_USB
+/*
+ * new 2.5 USB kernel API
+ */
+
+static int usb_audio_probe(struct usb_interface *intf,
+                          const struct usb_device_id *id)
+{
+       void *chip;
+       chip = _usb_audio_probe(interface_to_usbdev(intf),
+                               intf->altsetting->bInterfaceNumber, id);
+       if (chip) {
+               dev_set_drvdata(&intf->dev, chip);
+               return 0;
+       } else
+               return -EIO;
+}
+
+static void usb_audio_disconnect(struct usb_interface *intf)
+{
+       _usb_audio_disconnect(interface_to_usbdev(intf),
+                             dev_get_drvdata(&intf->dev));
+}
+#endif
+
+
 
 static int __init snd_usb_audio_init(void)
 {



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to