File: urb.patch

package info (click to toggle)
alsa-driver 1.0.23%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 28,448 kB
  • ctags: 77,491
  • sloc: ansic: 473,525; sh: 3,307; makefile: 2,661; python: 1,527; perl: 1,316; awk: 66
file content (72 lines) | stat: -rw-r--r-- 2,076 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
--- ../alsa-kernel/usb/urb.c	2010-03-10 09:22:24.488022926 +0100
+++ urb.c	2010-03-10 09:53:00.839522084 +0100
@@ -1,3 +1,5 @@
+#define __NO_VERSION__
+#include "usbaudio.inc"
 /*
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -69,9 +71,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);
 			}
 		}
@@ -81,9 +86,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);
 				}
 			}
@@ -162,7 +170,11 @@
 /*
  * complete callback from data urb
  */
+#if !defined(OLD_USB) && !defined(CONFIG_SND_NEW_IRQ_HANDLER)
+static void snd_complete_urb(struct urb *urb, struct pt_regs *regs)
+#else
 static void snd_complete_urb(struct urb *urb)
+#endif
 {
 	struct snd_urb_ctx *ctx = urb->context;
 	struct snd_usb_substream *subs = ctx->subs;
@@ -185,7 +197,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;
@@ -333,7 +349,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 |