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>
此提交包含在:
@@ -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);
|
||||
|
新增問題並參考
封鎖使用者