summaryrefslogtreecommitdiff
path: root/include/sound/rawmidi.h
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-06-14 12:37:06 (GMT)
committerTakashi Iwai <tiwai@suse.de>2011-06-14 12:37:06 (GMT)
commitb3c705aa9e9147a30009bdf6ba853aa7fe138e58 (patch)
tree27e1543b2a0e441a3929b51a48bf64b77c8f06b7 /include/sound/rawmidi.h
parent30bdee0259093e114c711943902c834e5c3326c5 (diff)
downloadlinux-b3c705aa9e9147a30009bdf6ba853aa7fe138e58.tar.xz
ALSA: rawmidi - Use workq for event handling
Kill tasklet usage in rawmidi core code. Use workq for the event callback instead of tasklet (which is used only in core/seq/seq_midi.c). Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/sound/rawmidi.h')
-rw-r--r--include/sound/rawmidi.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/sound/rawmidi.h b/include/sound/rawmidi.h
index 2480e7d..6b14359 100644
--- a/include/sound/rawmidi.h
+++ b/include/sound/rawmidi.h
@@ -27,6 +27,7 @@
#include <linux/spinlock.h>
#include <linux/wait.h>
#include <linux/mutex.h>
+#include <linux/workqueue.h>
#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
#include "seq_device.h"
@@ -63,6 +64,7 @@ struct snd_rawmidi_global_ops {
};
struct snd_rawmidi_runtime {
+ struct snd_rawmidi_substream *substream;
unsigned int drain: 1, /* drain stage */
oss: 1; /* OSS compatible mode */
/* midi stream buffer */
@@ -79,7 +81,7 @@ struct snd_rawmidi_runtime {
/* event handler (new bytes, input only) */
void (*event)(struct snd_rawmidi_substream *substream);
/* defers calls to event [input] or ops->trigger [output] */
- struct tasklet_struct tasklet;
+ struct work_struct event_work;
/* private data */
void *private_data;
void (*private_free)(struct snd_rawmidi_substream *substream);