pcm: fix the fast_ops pcm argument for fast_ops

The fast_ops callback invocation must always pass the fast_op_arg
as the pcm argument. Plugins expect that.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2022-11-14 14:34:46 +01:00
parent 78b20e3caa
commit 425e4d1fbe
4 changed files with 7 additions and 6 deletions

View file

@ -759,8 +759,9 @@ static int snd_pcm_multi_link_slaves(snd_pcm_t *pcm, snd_pcm_t *master)
static int snd_pcm_multi_link(snd_pcm_t *pcm1, snd_pcm_t *pcm2)
{
snd_pcm_multi_t *multi = pcm1->private_data;
if (multi->slaves[0].pcm->fast_ops->link)
return multi->slaves[0].pcm->fast_ops->link(multi->slaves[0].pcm, pcm2);
snd_pcm_t *main_pcm = multi->slaves[0].pcm;
if (main_pcm->fast_ops->link)
return main_pcm->fast_ops->link(main_pcm->fast_op_arg, pcm2);
return -ENOSYS;
}