[alsa-devel] [PATCH 0/5] RFC for snd-usb: rework usb endpoint logic

Takashi Iwai tiwai at suse.de
Wed Nov 2 07:49:36 CET 2011


At Tue, 1 Nov 2011 20:03:02 +0100,
Felix Homann wrote:
> 
> On my machine building from alsa-driver/alsa-kernel fails.
> 
> I've got my alsa-kernel from here:
> 
> git clone git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
> alsa-kernel
> 
> alsa-driver is this one:
> 
> git clone git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/alsa-driver-build.git
> alsa-driver
> 
> After successfully patching alsa-kernel the build fails:
> 
> ./gitcompile  --with-oss=no --with-pcm-oss-plugins=no
> --with-debug=full --enable-dynamic-minors --with-moddir=updates
> 
> [.....]
> 
> copying file alsa-kernel/usb/endpoint.cpatching file endpoint.cHunk #2
> FAILED at 72.Hunk #3 FAILED at 84.Hunk #4 succeeded at 194 with fuzz 2
> (offset 29 lines).Hunk #5 FAILED at 192.Hunk #6 FAILED at 341.4 out of
> 6 hunks FAILED -- saving rejects to file endpoint.c.rej

Yeah, the patching in alsa-driver tree would fail with this update.
It's better to use 3.1 kernel and pull sound tree in it.


Takashi


> Here's endpoint.c.rej:
> 
> --- ../alsa-kernel/usb/endpoint.c       2011-09-14 13:57:01.622042886 +0200
> +++ endpoint.c  2011-09-14 13:57:20.178761685 +0200
> @@ -72,9 +74,12 @@
>                 if (test_bit(i, &subs->active_mask)) {
>                         if (!test_and_set_bit(i, &subs->unlink_mask)) {
>                                 struct urb *u = subs->dataurb[i].urb;
> -                               if (async)
> +                               if (async) {
> +#ifdef URB_ASYNC_UNLINK
> +                                       u->transfer_flags |= URB_ASYNC_UNLINK;
> +#endif
>                                         usb_unlink_urb(u);
> -                               else
> +                               } else
>                                         usb_kill_urb(u);
>                         }
>                 }
> @@ -84,9 +89,12 @@
>                         if (test_bit(i+16, &subs->active_mask)) {
>                                 if (!test_and_set_bit(i+16,
> &subs->unlink_mask)) {
>                                         struct urb *u = subs->syncurb[i].urb;
> -                                       if (async)
> +                                       if (async) {
> +#ifdef URB_ASYNC_UNLINK
> +                                               u->transfer_flags |=
> URB_ASYNC_UNLINK;
> +#endif
>                                                 usb_unlink_urb(u);
> -                                       else
> +                                       } else
>                                                 usb_kill_urb(u);
>                                 }
>                         }
> @@ -192,7 +204,11 @@
>  /*
>   * complete callback from sync urb
>   */
> +#if !defined(OLD_USB) && !defined(CONFIG_SND_NEW_IRQ_HANDLER)
> +static void snd_complete_sync_urb(struct urb *urb, struct pt_regs *regs)
> +#else
>  static void snd_complete_sync_urb(struct urb *urb)
> +#endif
>  {
>         struct snd_urb_ctx *ctx = urb->context;
>         struct snd_usb_substream *subs = ctx->subs;
> @@ -341,7 +357,9 @@
>                         if (!u->urb)
>                                 goto out_of_memory;
>                         u->urb->transfer_buffer = subs->syncbuf + i * 4;
> +#ifdef HAVE_USB_BUFFERS
>                         u->urb->transfer_dma = subs->sync_dma + i * 4;
> +#endif
>                         u->urb->transfer_buffer_length = 4;
>                         u->urb->pipe = subs->syncpipe;
>                         u->urb->transfer_flags = URB_ISO_ASAP |
> 


More information about the Alsa-devel mailing list