assert(pcm1);
assert(pcm2);
if (pcm1->fast_ops->link)
- err = pcm1->fast_ops->link(pcm1, pcm2);
+ err = pcm1->fast_ops->link(pcm1->fast_op_arg, pcm2);
else
err = -ENOSYS;
return err;
assert(pcm);
if (pcm->fast_ops->unlink)
- err = pcm->fast_ops->unlink(pcm);
+ err = pcm->fast_ops->unlink(pcm->fast_op_arg);
else
err = -ENOSYS;
return err;
* so don't increment but just update to actual counter
*/
direct->recoveries = direct->shmptr->s.recoveries;
- pcm->fast_ops->drop(pcm);
+ pcm->fast_ops->drop(pcm->fast_op_arg);
/* trigger_tstamp update is missing in drop callbacks */
gettimestamp(&direct->trigger_tstamp, pcm->tstamp_type);
/* no timer clear:
{
if (pcm2->type != SND_PCM_TYPE_HW) {
if (pcm2->fast_ops->link_slaves)
- return pcm2->fast_ops->link_slaves(pcm2, pcm1);
+ return pcm2->fast_ops->link_slaves(pcm2->fast_op_arg, pcm1);
return -ENOSYS;
}
return hw_link(pcm1, pcm2);
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;
}