diff options
-rw-r--r-- | include/sound/seq_kernel.h | 12 | ||||
-rw-r--r-- | sound/core/seq/oss/seq_oss_init.c | 9 | ||||
-rw-r--r-- | sound/core/seq/seq_clientmgr.c | 9 | ||||
-rw-r--r-- | sound/core/seq/seq_clientmgr.h | 2 | ||||
-rw-r--r-- | sound/core/seq/seq_dummy.c | 6 | ||||
-rw-r--r-- | sound/core/seq/seq_midi.c | 6 | ||||
-rw-r--r-- | sound/core/seq/seq_system.c | 6 | ||||
-rw-r--r-- | sound/core/seq/seq_virmidi.c | 7 | ||||
-rw-r--r-- | sound/drivers/opl3/opl3_seq.c | 6 | ||||
-rw-r--r-- | sound/drivers/opl4/opl4_seq.c | 6 | ||||
-rw-r--r-- | sound/isa/gus/gus_synth.c | 6 | ||||
-rw-r--r-- | sound/pci/trident/trident_synth.c | 6 | ||||
-rw-r--r-- | sound/synth/emux/emux_seq.c | 8 |
13 files changed, 14 insertions, 75 deletions
diff --git a/include/sound/seq_kernel.h b/include/sound/seq_kernel.h index 1b60890b44cd..77cf57e21489 100644 --- a/include/sound/seq_kernel.h +++ b/include/sound/seq_kernel.h | |||
@@ -60,15 +60,6 @@ typedef union snd_seq_timestamp snd_seq_timestamp_t; | |||
60 | /* max size of event size */ | 60 | /* max size of event size */ |
61 | #define SNDRV_SEQ_MAX_EVENT_LEN 0x3fffffff | 61 | #define SNDRV_SEQ_MAX_EVENT_LEN 0x3fffffff |
62 | 62 | ||
63 | /* call-backs for kernel client */ | ||
64 | |||
65 | struct snd_seq_client_callback { | ||
66 | void *private_data; | ||
67 | unsigned allow_input: 1, | ||
68 | allow_output: 1; | ||
69 | /*...*/ | ||
70 | }; | ||
71 | |||
72 | /* call-backs for kernel port */ | 63 | /* call-backs for kernel port */ |
73 | struct snd_seq_port_callback { | 64 | struct snd_seq_port_callback { |
74 | struct module *owner; | 65 | struct module *owner; |
@@ -84,8 +75,7 @@ struct snd_seq_port_callback { | |||
84 | }; | 75 | }; |
85 | 76 | ||
86 | /* interface for kernel client */ | 77 | /* interface for kernel client */ |
87 | int snd_seq_create_kernel_client(struct snd_card *card, int client_index, | 78 | int snd_seq_create_kernel_client(struct snd_card *card, int client_index); |
88 | struct snd_seq_client_callback *callback); | ||
89 | int snd_seq_delete_kernel_client(int client); | 79 | int snd_seq_delete_kernel_client(int client); |
90 | int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); | 80 | int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); |
91 | int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop); | 81 | int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop); |
diff --git a/sound/core/seq/oss/seq_oss_init.c b/sound/core/seq/oss/seq_oss_init.c index 97e2493e931f..cd4139adec0b 100644 --- a/sound/core/seq/oss/seq_oss_init.c +++ b/sound/core/seq/oss/seq_oss_init.c | |||
@@ -65,7 +65,6 @@ int __init | |||
65 | snd_seq_oss_create_client(void) | 65 | snd_seq_oss_create_client(void) |
66 | { | 66 | { |
67 | int rc; | 67 | int rc; |
68 | struct snd_seq_client_callback callback; | ||
69 | struct snd_seq_client_info *info; | 68 | struct snd_seq_client_info *info; |
70 | struct snd_seq_port_info *port; | 69 | struct snd_seq_port_info *port; |
71 | struct snd_seq_port_callback port_callback; | 70 | struct snd_seq_port_callback port_callback; |
@@ -78,13 +77,7 @@ snd_seq_oss_create_client(void) | |||
78 | } | 77 | } |
79 | 78 | ||
80 | /* create ALSA client */ | 79 | /* create ALSA client */ |
81 | memset(&callback, 0, sizeof(callback)); | 80 | rc = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_OSS); |
82 | |||
83 | callback.private_data = NULL; | ||
84 | callback.allow_input = 1; | ||
85 | callback.allow_output = 1; | ||
86 | |||
87 | rc = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_OSS, &callback); | ||
88 | if (rc < 0) | 81 | if (rc < 0) |
89 | goto __error; | 82 | goto __error; |
90 | 83 | ||
diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index 79199f53d63a..bd8c0989785f 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c | |||
@@ -2212,15 +2212,12 @@ static long snd_seq_ioctl(struct file *file, unsigned int cmd, unsigned long arg | |||
2212 | 2212 | ||
2213 | 2213 | ||
2214 | /* exported to kernel modules */ | 2214 | /* exported to kernel modules */ |
2215 | int snd_seq_create_kernel_client(struct snd_card *card, int client_index, | 2215 | int snd_seq_create_kernel_client(struct snd_card *card, int client_index) |
2216 | struct snd_seq_client_callback *callback) | ||
2217 | { | 2216 | { |
2218 | struct snd_seq_client *client; | 2217 | struct snd_seq_client *client; |
2219 | 2218 | ||
2220 | snd_assert(! in_interrupt(), return -EBUSY); | 2219 | snd_assert(! in_interrupt(), return -EBUSY); |
2221 | 2220 | ||
2222 | if (callback == NULL) | ||
2223 | return -EINVAL; | ||
2224 | if (card && client_index > 3) | 2221 | if (card && client_index > 3) |
2225 | return -EINVAL; | 2222 | return -EINVAL; |
2226 | if (card == NULL && client_index > 63) | 2223 | if (card == NULL && client_index > 63) |
@@ -2244,8 +2241,8 @@ int snd_seq_create_kernel_client(struct snd_card *card, int client_index, | |||
2244 | } | 2241 | } |
2245 | usage_alloc(&client_usage, 1); | 2242 | usage_alloc(&client_usage, 1); |
2246 | 2243 | ||
2247 | client->accept_input = callback->allow_output; | 2244 | client->accept_input = 1; |
2248 | client->accept_output = callback->allow_input; | 2245 | client->accept_output = 1; |
2249 | 2246 | ||
2250 | sprintf(client->name, "Client-%d", client->number); | 2247 | sprintf(client->name, "Client-%d", client->number); |
2251 | 2248 | ||
diff --git a/sound/core/seq/seq_clientmgr.h b/sound/core/seq/seq_clientmgr.h index 7131d218dc75..450091ca153d 100644 --- a/sound/core/seq/seq_clientmgr.h +++ b/sound/core/seq/seq_clientmgr.h | |||
@@ -91,8 +91,6 @@ struct snd_seq_client *snd_seq_client_use_ptr(int clientid); | |||
91 | int snd_seq_dispatch_event(struct snd_seq_event_cell *cell, int atomic, int hop); | 91 | int snd_seq_dispatch_event(struct snd_seq_event_cell *cell, int atomic, int hop); |
92 | 92 | ||
93 | /* exported to other modules */ | 93 | /* exported to other modules */ |
94 | int snd_seq_register_kernel_client(struct snd_seq_client_callback *callback, void *private_data); | ||
95 | int snd_seq_unregister_kernel_client(int client); | ||
96 | int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); | 94 | int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop); |
97 | int snd_seq_kernel_client_enqueue_blocking(int client, struct snd_seq_event * ev, | 95 | int snd_seq_kernel_client_enqueue_blocking(int client, struct snd_seq_event * ev, |
98 | struct file *file, int atomic, int hop); | 96 | struct file *file, int atomic, int hop); |
diff --git a/sound/core/seq/seq_dummy.c b/sound/core/seq/seq_dummy.c index 8101a475e3e5..e7344b6332da 100644 --- a/sound/core/seq/seq_dummy.c +++ b/sound/core/seq/seq_dummy.c | |||
@@ -193,7 +193,6 @@ create_port(int idx, int type) | |||
193 | static int __init | 193 | static int __init |
194 | register_client(void) | 194 | register_client(void) |
195 | { | 195 | { |
196 | struct snd_seq_client_callback cb; | ||
197 | struct snd_seq_client_info cinfo; | 196 | struct snd_seq_client_info cinfo; |
198 | struct snd_seq_dummy_port *rec1, *rec2; | 197 | struct snd_seq_dummy_port *rec1, *rec2; |
199 | int i; | 198 | int i; |
@@ -204,10 +203,7 @@ register_client(void) | |||
204 | } | 203 | } |
205 | 204 | ||
206 | /* create client */ | 205 | /* create client */ |
207 | memset(&cb, 0, sizeof(cb)); | 206 | my_client = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_DUMMY); |
208 | cb.allow_input = 1; | ||
209 | cb.allow_output = 1; | ||
210 | my_client = snd_seq_create_kernel_client(NULL, SNDRV_SEQ_CLIENT_DUMMY, &cb); | ||
211 | if (my_client < 0) | 207 | if (my_client < 0) |
212 | return my_client; | 208 | return my_client; |
213 | 209 | ||
diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c index 0a65eb2f976b..512ffddd158c 100644 --- a/sound/core/seq/seq_midi.c +++ b/sound/core/seq/seq_midi.c | |||
@@ -295,7 +295,6 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) | |||
295 | struct snd_rawmidi_info *info; | 295 | struct snd_rawmidi_info *info; |
296 | int newclient = 0; | 296 | int newclient = 0; |
297 | unsigned int p, ports; | 297 | unsigned int p, ports; |
298 | struct snd_seq_client_callback callbacks; | ||
299 | struct snd_seq_port_callback pcallbacks; | 298 | struct snd_seq_port_callback pcallbacks; |
300 | struct snd_card *card = dev->card; | 299 | struct snd_card *card = dev->card; |
301 | int device = dev->device; | 300 | int device = dev->device; |
@@ -334,10 +333,7 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) | |||
334 | kfree(info); | 333 | kfree(info); |
335 | return -ENOMEM; | 334 | return -ENOMEM; |
336 | } | 335 | } |
337 | memset(&callbacks, 0, sizeof(callbacks)); | 336 | client->seq_client = snd_seq_create_kernel_client(card, 0); |
338 | callbacks.private_data = client; | ||
339 | callbacks.allow_input = callbacks.allow_output = 1; | ||
340 | client->seq_client = snd_seq_create_kernel_client(card, 0, &callbacks); | ||
341 | if (client->seq_client < 0) { | 337 | if (client->seq_client < 0) { |
342 | kfree(client); | 338 | kfree(client); |
343 | up(®ister_mutex); | 339 | up(®ister_mutex); |
diff --git a/sound/core/seq/seq_system.c b/sound/core/seq/seq_system.c index 86b1cba33c08..c87c883bd92d 100644 --- a/sound/core/seq/seq_system.c +++ b/sound/core/seq/seq_system.c | |||
@@ -120,8 +120,6 @@ static int event_input_timer(struct snd_seq_event * ev, int direct, void *privat | |||
120 | /* register our internal client */ | 120 | /* register our internal client */ |
121 | int __init snd_seq_system_client_init(void) | 121 | int __init snd_seq_system_client_init(void) |
122 | { | 122 | { |
123 | |||
124 | struct snd_seq_client_callback callbacks; | ||
125 | struct snd_seq_port_callback pcallbacks; | 123 | struct snd_seq_port_callback pcallbacks; |
126 | struct snd_seq_client_info *inf; | 124 | struct snd_seq_client_info *inf; |
127 | struct snd_seq_port_info *port; | 125 | struct snd_seq_port_info *port; |
@@ -134,14 +132,12 @@ int __init snd_seq_system_client_init(void) | |||
134 | return -ENOMEM; | 132 | return -ENOMEM; |
135 | } | 133 | } |
136 | 134 | ||
137 | memset(&callbacks, 0, sizeof(callbacks)); | ||
138 | memset(&pcallbacks, 0, sizeof(pcallbacks)); | 135 | memset(&pcallbacks, 0, sizeof(pcallbacks)); |
139 | pcallbacks.owner = THIS_MODULE; | 136 | pcallbacks.owner = THIS_MODULE; |
140 | pcallbacks.event_input = event_input_timer; | 137 | pcallbacks.event_input = event_input_timer; |
141 | 138 | ||
142 | /* register client */ | 139 | /* register client */ |
143 | callbacks.allow_input = callbacks.allow_output = 1; | 140 | sysclient = snd_seq_create_kernel_client(NULL, 0); |
144 | sysclient = snd_seq_create_kernel_client(NULL, 0, &callbacks); | ||
145 | 141 | ||
146 | /* set our name */ | 142 | /* set our name */ |
147 | inf->client = 0; | 143 | inf->client = 0; |
diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c index ea2113968fe7..2739f5772578 100644 --- a/sound/core/seq/seq_virmidi.c +++ b/sound/core/seq/seq_virmidi.c | |||
@@ -359,7 +359,6 @@ static struct snd_rawmidi_ops snd_virmidi_output_ops = { | |||
359 | static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) | 359 | static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) |
360 | { | 360 | { |
361 | int client; | 361 | int client; |
362 | struct snd_seq_client_callback callbacks; | ||
363 | struct snd_seq_port_callback pcallbacks; | 362 | struct snd_seq_port_callback pcallbacks; |
364 | struct snd_seq_client_info *info; | 363 | struct snd_seq_client_info *info; |
365 | struct snd_seq_port_info *pinfo; | 364 | struct snd_seq_port_info *pinfo; |
@@ -375,11 +374,7 @@ static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev) | |||
375 | goto __error; | 374 | goto __error; |
376 | } | 375 | } |
377 | 376 | ||
378 | memset(&callbacks, 0, sizeof(callbacks)); | 377 | client = snd_seq_create_kernel_client(rdev->card, rdev->device); |
379 | callbacks.private_data = rdev; | ||
380 | callbacks.allow_input = 1; | ||
381 | callbacks.allow_output = 1; | ||
382 | client = snd_seq_create_kernel_client(rdev->card, rdev->device, &callbacks); | ||
383 | if (client < 0) { | 378 | if (client < 0) { |
384 | err = client; | 379 | err = client; |
385 | goto __error; | 380 | goto __error; |
diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c index 1886b2958e77..582ff63e784b 100644 --- a/sound/drivers/opl3/opl3_seq.c +++ b/sound/drivers/opl3/opl3_seq.c | |||
@@ -219,7 +219,6 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) | |||
219 | { | 219 | { |
220 | struct snd_opl3 *opl3; | 220 | struct snd_opl3 *opl3; |
221 | int client; | 221 | int client; |
222 | struct snd_seq_client_callback callbacks; | ||
223 | struct snd_seq_client_info cinfo; | 222 | struct snd_seq_client_info cinfo; |
224 | int opl_ver; | 223 | int opl_ver; |
225 | 224 | ||
@@ -232,11 +231,8 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev) | |||
232 | opl3->seq_client = -1; | 231 | opl3->seq_client = -1; |
233 | 232 | ||
234 | /* allocate new client */ | 233 | /* allocate new client */ |
235 | memset(&callbacks, 0, sizeof(callbacks)); | ||
236 | callbacks.private_data = opl3; | ||
237 | callbacks.allow_output = callbacks.allow_input = 1; | ||
238 | client = opl3->seq_client = | 234 | client = opl3->seq_client = |
239 | snd_seq_create_kernel_client(opl3->card, opl3->seq_dev_num, &callbacks); | 235 | snd_seq_create_kernel_client(opl3->card, opl3->seq_dev_num); |
240 | if (client < 0) | 236 | if (client < 0) |
241 | return client; | 237 | return client; |
242 | 238 | ||
diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c index bfd68e49c914..a69117dd0071 100644 --- a/sound/drivers/opl4/opl4_seq.c +++ b/sound/drivers/opl4/opl4_seq.c | |||
@@ -127,7 +127,6 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) | |||
127 | { | 127 | { |
128 | struct snd_opl4 *opl4; | 128 | struct snd_opl4 *opl4; |
129 | int client; | 129 | int client; |
130 | struct snd_seq_client_callback callbacks; | ||
131 | struct snd_seq_client_info cinfo; | 130 | struct snd_seq_client_info cinfo; |
132 | struct snd_seq_port_callback pcallbacks; | 131 | struct snd_seq_port_callback pcallbacks; |
133 | 132 | ||
@@ -144,10 +143,7 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev) | |||
144 | opl4->chset->private_data = opl4; | 143 | opl4->chset->private_data = opl4; |
145 | 144 | ||
146 | /* allocate new client */ | 145 | /* allocate new client */ |
147 | memset(&callbacks, 0, sizeof(callbacks)); | 146 | client = snd_seq_create_kernel_client(opl4->card, opl4->seq_dev_num); |
148 | callbacks.private_data = opl4; | ||
149 | callbacks.allow_output = callbacks.allow_input = 1; | ||
150 | client = snd_seq_create_kernel_client(opl4->card, opl4->seq_dev_num, &callbacks); | ||
151 | if (client < 0) { | 147 | if (client < 0) { |
152 | snd_midi_channel_free_set(opl4->chset); | 148 | snd_midi_channel_free_set(opl4->chset); |
153 | return client; | 149 | return client; |
diff --git a/sound/isa/gus/gus_synth.c b/sound/isa/gus/gus_synth.c index 9c7d6986f62f..6464488363e4 100644 --- a/sound/isa/gus/gus_synth.c +++ b/sound/isa/gus/gus_synth.c | |||
@@ -214,7 +214,6 @@ static int snd_gus_synth_new_device(struct snd_seq_device *dev) | |||
214 | { | 214 | { |
215 | struct snd_gus_card *gus; | 215 | struct snd_gus_card *gus; |
216 | int client, i; | 216 | int client, i; |
217 | struct snd_seq_client_callback callbacks; | ||
218 | struct snd_seq_client_info *cinfo; | 217 | struct snd_seq_client_info *cinfo; |
219 | struct snd_seq_port_subscribe sub; | 218 | struct snd_seq_port_subscribe sub; |
220 | struct snd_iwffff_ops *iwops; | 219 | struct snd_iwffff_ops *iwops; |
@@ -233,11 +232,8 @@ static int snd_gus_synth_new_device(struct snd_seq_device *dev) | |||
233 | return -ENOMEM; | 232 | return -ENOMEM; |
234 | 233 | ||
235 | /* allocate new client */ | 234 | /* allocate new client */ |
236 | memset(&callbacks, 0, sizeof(callbacks)); | ||
237 | callbacks.private_data = gus; | ||
238 | callbacks.allow_output = callbacks.allow_input = 1; | ||
239 | client = gus->gf1.seq_client = | 235 | client = gus->gf1.seq_client = |
240 | snd_seq_create_kernel_client(gus->card, 1, &callbacks); | 236 | snd_seq_create_kernel_client(gus->card, 1); |
241 | if (client < 0) { | 237 | if (client < 0) { |
242 | kfree(cinfo); | 238 | kfree(cinfo); |
243 | return client; | 239 | return client; |
diff --git a/sound/pci/trident/trident_synth.c b/sound/pci/trident/trident_synth.c index a49682ef3e3e..e31055a4bd25 100644 --- a/sound/pci/trident/trident_synth.c +++ b/sound/pci/trident/trident_synth.c | |||
@@ -934,7 +934,6 @@ static int snd_trident_synth_new_device(struct snd_seq_device *dev) | |||
934 | { | 934 | { |
935 | struct snd_trident *trident; | 935 | struct snd_trident *trident; |
936 | int client, i; | 936 | int client, i; |
937 | struct snd_seq_client_callback callbacks; | ||
938 | struct snd_seq_client_info cinfo; | 937 | struct snd_seq_client_info cinfo; |
939 | struct snd_seq_port_subscribe sub; | 938 | struct snd_seq_port_subscribe sub; |
940 | struct snd_simple_ops *simpleops; | 939 | struct snd_simple_ops *simpleops; |
@@ -947,11 +946,8 @@ static int snd_trident_synth_new_device(struct snd_seq_device *dev) | |||
947 | trident->synth.seq_client = -1; | 946 | trident->synth.seq_client = -1; |
948 | 947 | ||
949 | /* allocate new client */ | 948 | /* allocate new client */ |
950 | memset(&callbacks, 0, sizeof(callbacks)); | ||
951 | callbacks.private_data = trident; | ||
952 | callbacks.allow_output = callbacks.allow_input = 1; | ||
953 | client = trident->synth.seq_client = | 949 | client = trident->synth.seq_client = |
954 | snd_seq_create_kernel_client(trident->card, 1, &callbacks); | 950 | snd_seq_create_kernel_client(trident->card, 1); |
955 | if (client < 0) | 951 | if (client < 0) |
956 | return client; | 952 | return client; |
957 | 953 | ||
diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c index f5a832ff362c..b7129c5aee06 100644 --- a/sound/synth/emux/emux_seq.c +++ b/sound/synth/emux/emux_seq.c | |||
@@ -347,17 +347,11 @@ snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *info) | |||
347 | static int | 347 | static int |
348 | get_client(struct snd_card *card, int index, char *name) | 348 | get_client(struct snd_card *card, int index, char *name) |
349 | { | 349 | { |
350 | struct snd_seq_client_callback callbacks; | ||
351 | struct snd_seq_client_info cinfo; | 350 | struct snd_seq_client_info cinfo; |
352 | int client; | 351 | int client; |
353 | 352 | ||
354 | memset(&callbacks, 0, sizeof(callbacks)); | ||
355 | callbacks.private_data = NULL; | ||
356 | callbacks.allow_input = 1; | ||
357 | callbacks.allow_output = 1; | ||
358 | |||
359 | /* Find a free client, start from 1 as the MPU expects to use 0 */ | 353 | /* Find a free client, start from 1 as the MPU expects to use 0 */ |
360 | client = snd_seq_create_kernel_client(card, index, &callbacks); | 354 | client = snd_seq_create_kernel_client(card, index); |
361 | if (client < 0) | 355 | if (client < 0) |
362 | return client; | 356 | return client; |
363 | 357 | ||