All of lore.kernel.org
 help / color / mirror / Atom feed
* USB fix
@ 2003-03-10 11:31 Jordi Mallach
  2003-03-10 14:41 ` Takashi Iwai
  0 siblings, 1 reply; 6+ messages in thread
From: Jordi Mallach @ 2003-03-10 11:31 UTC (permalink / raw)
  To: alsa-devel; +Cc: debian-alsa


[-- Attachment #1.1: Type: text/plain, Size: 2441 bytes --]

Hi,

This is the last thing we think we need to tell you guys about.

We need to apply this patch to rc7 and rc8 to get usb compiled. If we
don't apply it, we get the following:

gcc-2.95 -D__KERNEL__ -DMODULE=1 -I/tmp/modules/alsa-driver/include
-I/usr/src/kernel-headers-2.4.20-k7-smp/include -O2
-mpreferred-stack-boundary=2 -march=i686 -malign-functions=4 -D__SMP__
-DCONFIG_SMP -DLINUX -Wall -Wstrict-prototypes -fomit-frame-pointer
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -DALSA_BUILD
-DKBUILD_BASENAME=usbmidi   -c -o usbmidi.o usbmidi.c
In file included from usbaudio.c:2:
../alsa-kernel/usb/usbaudio.c: At top level:
../alsa-kernel/usb/usbaudio.c:1619: `usb_audio_probe' undeclared here (not
in a function)
../alsa-kernel/usb/usbaudio.c:1619: initializer element is not constant
../alsa-kernel/usb/usbaudio.c:1619: (near initialization for
`usb_audio_driver.probe')
../alsa-kernel/usb/usbaudio.c:1620: `usb_audio_disconnect' undeclared here
(not in a function)
../alsa-kernel/usb/usbaudio.c:1620: initializer element is not constant
../alsa-kernel/usb/usbaudio.c:1620: (near initialization for
`usb_audio_driver.disconnect')
../alsa-kernel/usb/usbaudio.c:1622: initializer element is not constant
../alsa-kernel/usb/usbaudio.c:1622: (near initialization for
`usb_audio_driver.driver_list')
../alsa-kernel/usb/usbaudio.c:1625: initializer element is not constant
../alsa-kernel/usb/usbaudio.c:1625: (near initialization for
`usb_audio_driver')
../alsa-kernel/usb/usbaudio.c:1625: initializer element is not constant
../alsa-kernel/usb/usbaudio.c:1625: (near initialization for
`usb_audio_driver')
../alsa-kernel/usb/usbaudio.c:1625: initializer element is not constant
../alsa-kernel/usb/usbaudio.c:1625: (near initialization for
`usb_audio_driver')
../alsa-kernel/usb/usbaudio.c:2456: warning: `snd_usb_audio_probe' defined
but not used
../alsa-kernel/usb/usbaudio.c:2563: warning: `snd_usb_audio_disconnect'
defined but not used
make[2]: *** [usbaudio.o] Error 1

If we apply the attached patch, it works ok. What we wonder is if this
is something happening in Debian only, as I've seen no reports of this
on the list, which is suspicious.

Jordi
-- 
Jordi Mallach Pérez  --  Debian developer     http://www.debian.org/
jordi@sindominio.net     jordi@debian.org     http://www.sindominio.net/
GnuPG public key information available at http://oskuro.net/~jordi/

[-- Attachment #1.2: 05_usbaudio_build_failure.dpatch --]
[-- Type: text/plain, Size: 1909 bytes --]

#! /bin/sh -e

# 05_usbaudio_build_failure.dpatch by Steve Kowalik
#
# DP: Fix build failure in usb/usbaudio.c.

. debian/patches/patch-opts

if [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch $patch_opts < $0;;
    -unpatch) patch $patch_opts -R < $0;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1;;
esac

exit 0

--- alsa-driver/usb/usbaudio.c      28 Jan 2003 16:20:03 -0000      1.9
+++ alsa-driver/usb/usbaudio.c      2 Feb 2003 13:07:24 -0000
@@ -1,6 +1,44 @@
 #define SND_NEED_USB_WRAPPER
+#include <sound/driver.h>
+#include <linux/usb.h>
+
+#ifdef OLD_USB
+#define snd_usb_complete_callback(x) __old_ ## x
+static void __old_snd_complete_urb(struct urb *urb);
+static void __old_snd_complete_sync_urb(struct urb *urb);
+
+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
+
 #include "../alsa-kernel/usb/usbaudio.c"
 
+#ifdef OLD_USB
+/*
+ * 2.4 USB kernel API
+ */
+static void *usb_audio_probe(struct usb_device *dev, unsigned int ifnum,
+                            const struct usb_device_id *id)
+{
+       return snd_usb_audio_probe(dev, usb_ifnum_to_if(dev, ifnum), id);
+}
+                                       
+static void usb_audio_disconnect(struct usb_device *dev, void *ptr)
+{
+       snd_usb_audio_disconnect(dev, ptr);
+}
+
+static void __old_snd_complete_urb(struct urb *urb)
+{
+       snd_complete_urb(urb, NULL);
+}
+
+static void __old_snd_complete_sync_urb(struct urb *urb)
+{
+       snd_complete_sync_urb(urb, NULL);
+}
+#endif
 
 /*
  * workarounds / hacks for the older kernels follow below


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-03-11 14:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-10 11:31 USB fix Jordi Mallach
2003-03-10 14:41 ` Takashi Iwai
2003-03-10 16:47   ` Jordi Mallach
2003-03-10 16:54     ` Takashi Iwai
2003-03-11 11:42       ` Jordi Mallach
2003-03-11 14:50         ` Clemens Ladisch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.