ALSA: fireface: add protocol-specific operation to allocate isochronous resources
This commit is a part of preparation to perform allocation/release of isochronous channels in pcm.hw_params/hw_free callbacks. In ALSA fireface driver, the allocation of isochronous resources is programmed in each implementation of protocol. This commit adds protocol-specific operation for the allocation separated from the operation to begin session. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
d8f291b7b8
commit
47b87c8ed0
|
@ -156,6 +156,10 @@ int snd_ff_stream_start_duplex(struct snd_ff *ff, unsigned int rate)
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = ff->spec->protocol->allocate_resources(ff, rate);
|
||||
if (err < 0)
|
||||
goto error;
|
||||
|
||||
err = ff->spec->protocol->begin_session(ff, rate);
|
||||
if (err < 0)
|
||||
goto error;
|
||||
|
|
|
@ -113,6 +113,7 @@ struct snd_ff_protocol {
|
|||
int (*get_clock)(struct snd_ff *ff, unsigned int *rate,
|
||||
enum snd_ff_clock_src *src);
|
||||
int (*switch_fetching_mode)(struct snd_ff *ff, bool enable);
|
||||
int (*allocate_resources)(struct snd_ff *ff, unsigned int rate);
|
||||
int (*begin_session)(struct snd_ff *ff, unsigned int rate);
|
||||
void (*finish_session)(struct snd_ff *ff);
|
||||
void (*dump_status)(struct snd_ff *ff, struct snd_info_buffer *buffer);
|
||||
|
|
Loading…
Reference in New Issue