Update of /cvsroot/alsa/alsa-kernel/usb
In directory usw-pr-cvs1:/tmp/cvs-serv20832
Modified Files:
usbaudio.c usbmidi.c usbmixer.c
Log Message:
Fixes for 2.5 USB core
Index: usbaudio.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbaudio.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- usbaudio.c 2 Oct 2002 17:34:30 -0000 1.12
+++ usbaudio.c 3 Oct 2002 10:33:09 -0000 1.13
@@ -1308,9 +1308,15 @@
* entry point for linux usb interface
*/
-static void * usb_audio_probe(struct usb_device *dev, unsigned int ifnum,
+#ifndef OLD_USB
+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(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 [] = {
#include "usbquirks.h"
@@ -1326,7 +1332,9 @@
.name = "snd-usb-audio",
.probe = usb_audio_probe,
.disconnect = usb_audio_disconnect,
+#ifdef OLD_USB
.driver_list = LIST_HEAD_INIT(usb_audio_driver.driver_list),
+#endif
.id_table = usb_audio_ids,
};
@@ -2058,9 +2066,18 @@
* 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,
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;
@@ -2070,17 +2087,17 @@
snd_usb_audio_t *chip;
if (quirk && ifnum != quirk->ifnum)
- return NULL;
+ goto __err_val;
if (usb_set_configuration(dev, config->bConfigurationValue) < 0) {
snd_printk(KERN_ERR "cannot set configuration (value 0x%x)\n",
config->bConfigurationValue);
- return NULL;
+ goto __err_val;
}
index = dev->actconfig - config;
buflen = alloc_desc_buffer(dev, index, &buffer);
if (buflen <= 0)
- return NULL;
+ goto __err_val;
/*
* found a config. now register to ALSA
@@ -2142,12 +2159,21 @@
chip->num_interfaces++;
up(®ister_mutex);
kfree(buffer);
+#ifndef OLD_USB
+ return 0;
+#else
return chip;
+#endif
__error:
up(®ister_mutex);
kfree(buffer);
+ __err_val:
+#ifndef OLD_USB
+ return -EIO;
+#else
return NULL;
+#endif
}
@@ -2155,8 +2181,15 @@
* 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
{
+#ifndef OLD_USB
+ void *ptr = dev_get_drvdata(&intf->dev);
+#endif
snd_usb_audio_t *chip;
if (ptr == (void *)-1)
Index: usbmidi.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbmidi.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- usbmidi.c 26 Aug 2002 16:05:43 -0000 1.4
+++ usbmidi.c 3 Oct 2002 10:33:09 -0000 1.5
@@ -479,6 +479,22 @@
snd_magic_kfree(ep);
}
+#ifndef OLD_USB
+/* this code is not exported from USB core anymore */
+struct usb_interface *local_usb_ifnum_to_if(struct usb_device *dev, unsigned ifnum)
+{
+ int i;
+
+ for (i = 0; i < dev->actconfig->bNumInterfaces; i++)
+ if (dev->actconfig->interface[i].altsetting[0].bInterfaceNumber ==
+ifnum)
+ return &dev->actconfig->interface[i];
+
+ return NULL;
+}
+#else
+#define local_usb_ifnum_to_if usb_ifnum_to_if
+#endif
+
/*
* For Roland devices, use the alternate setting which uses interrupt
* transfers for input.
@@ -491,7 +507,7 @@
if (umidi->chip->dev->descriptor.idVendor != 0x0582)
return NULL;
- intf = usb_ifnum_to_if(umidi->chip->dev, umidi->ifnum);
+ intf = local_usb_ifnum_to_if(umidi->chip->dev, umidi->ifnum);
if (!intf || intf->num_altsetting != 2)
return NULL;
@@ -803,7 +819,7 @@
memset(endpoints, 0, sizeof(*endpoints) * MIDI_MAX_ENDPOINTS);
- intf = usb_ifnum_to_if(umidi->chip->dev, umidi->ifnum);
+ intf = local_usb_ifnum_to_if(umidi->chip->dev, umidi->ifnum);
if (!intf)
return -ENXIO;
intfd = &intf->altsetting[0];
@@ -862,7 +878,7 @@
usb_endpoint_descriptor_t* epd;
if (endpoint->epnum == -1) {
- intf = usb_ifnum_to_if(umidi->chip->dev, umidi->ifnum);
+ intf = local_usb_ifnum_to_if(umidi->chip->dev, umidi->ifnum);
if (!intf || intf->num_altsetting < 1)
return -ENOENT;
intfd = intf->altsetting;
Index: usbmixer.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbmixer.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- usbmixer.c 2 Sep 2002 15:51:16 -0000 1.3
+++ usbmixer.c 3 Oct 2002 10:33:09 -0000 1.4
@@ -60,7 +60,7 @@
unsigned char *buffer;
unsigned int buflen;
unsigned int ctrlif;
- unsigned long unitbitmap[32/sizeof(unsigned long)];
+ DECLARE_BITMAP(unitbitmap, 32*32);
usb_audio_term_t oterm;
};
@@ -1252,7 +1252,7 @@
{
unsigned char *p1;
- if (test_and_set_bit(unitid, &state->unitbitmap))
+ if (test_and_set_bit(unitid, state->unitbitmap))
return 0; /* the unit already visited */
p1 = find_audio_control_unit(state, unitid);
@@ -1302,7 +1302,7 @@
while ((desc = snd_usb_find_csint_desc(buffer, buflen, desc, OUTPUT_TERMINAL,
ctrlif, -1)) != NULL) {
if (desc[0] < 9)
continue; /* invalid descriptor? */
- set_bit(desc[3], &state.unitbitmap); /* mark terminal ID as visited */
+ set_bit(desc[3], state.unitbitmap); /* mark terminal ID as visited */
state.oterm.id = desc[3];
state.oterm.type = combine_word(&desc[4]);
state.oterm.name = desc[8];
-------------------------------------------------------
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