|
@@ -635,20 +635,23 @@ int snd_seq_port_disconnect(struct snd_seq_client *connector,
|
|
|
|
|
|
|
|
|
|
|
|
|
/* get matched subscriber */
|
|
/* get matched subscriber */
|
|
|
-struct snd_seq_subscribers *snd_seq_port_get_subscription(struct snd_seq_port_subs_info *src_grp,
|
|
|
|
|
- struct snd_seq_addr *dest_addr)
|
|
|
|
|
|
|
+int snd_seq_port_get_subscription(struct snd_seq_port_subs_info *src_grp,
|
|
|
|
|
+ struct snd_seq_addr *dest_addr,
|
|
|
|
|
+ struct snd_seq_port_subscribe *subs)
|
|
|
{
|
|
{
|
|
|
- struct snd_seq_subscribers *s, *found = NULL;
|
|
|
|
|
|
|
+ struct snd_seq_subscribers *s;
|
|
|
|
|
+ int err = -ENOENT;
|
|
|
|
|
|
|
|
down_read(&src_grp->list_mutex);
|
|
down_read(&src_grp->list_mutex);
|
|
|
list_for_each_entry(s, &src_grp->list_head, src_list) {
|
|
list_for_each_entry(s, &src_grp->list_head, src_list) {
|
|
|
if (addr_match(dest_addr, &s->info.dest)) {
|
|
if (addr_match(dest_addr, &s->info.dest)) {
|
|
|
- found = s;
|
|
|
|
|
|
|
+ *subs = s->info;
|
|
|
|
|
+ err = 0;
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
up_read(&src_grp->list_mutex);
|
|
up_read(&src_grp->list_mutex);
|
|
|
- return found;
|
|
|
|
|
|
|
+ return err;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|