mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
ALSA: firewire-lib: add a kernel API to stop a couple of AMDTP streams in AMDTP domain
This commit adds a kernel API to stop a couple of isochronous contexts for AMDTP streams. The API is not protected with any lock primitive. Callers should use this with enough lock against concurrent access. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
3ec3d7a3ff
commit
6261f90bdb
@ -1158,3 +1158,19 @@ void amdtp_domain_destroy(struct amdtp_domain *d)
|
||||
WARN_ON(!list_empty(&d->streams));
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(amdtp_domain_destroy);
|
||||
|
||||
/**
|
||||
* amdtp_domain_stop - stop sending packets for isoc context in the same domain.
|
||||
* @d: the AMDTP domain to which the isoc contexts belong.
|
||||
*/
|
||||
void amdtp_domain_stop(struct amdtp_domain *d)
|
||||
{
|
||||
struct amdtp_stream *s, *next;
|
||||
|
||||
list_for_each_entry_safe(s, next, &d->streams, list) {
|
||||
list_del(&s->list);
|
||||
|
||||
amdtp_stream_stop(s);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(amdtp_domain_stop);
|
||||
|
@ -170,6 +170,9 @@ struct amdtp_stream {
|
||||
/* For backends to process data blocks. */
|
||||
void *protocol;
|
||||
amdtp_stream_process_ctx_payloads_t process_ctx_payloads;
|
||||
|
||||
// For domain.
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
int amdtp_stream_init(struct amdtp_stream *s, struct fw_unit *unit,
|
||||
@ -274,4 +277,6 @@ struct amdtp_domain {
|
||||
int amdtp_domain_init(struct amdtp_domain *d);
|
||||
void amdtp_domain_destroy(struct amdtp_domain *d);
|
||||
|
||||
void amdtp_domain_stop(struct amdtp_domain *d);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user