soc_pcm_trigger

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

in soc-core.c ,soc_pcm_trigger(),

The function only calls three sub-functions
codec_dai->ops->trigger
platform->pcm_ops->trigger
cpu_dai->ops->trigger

why not give machine a chance to run its trigger??
like machine->ops->trigger.
Thanks


static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
{
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct snd_soc_device *socdev = rtd->socdev;
        struct snd_soc_dai_link *machine = rtd->dai;
        struct snd_soc_card *card = socdev->card;
        struct snd_soc_platform *platform = card->platform;
        struct snd_soc_dai *cpu_dai = machine->cpu_dai;
        struct snd_soc_dai *codec_dai = machine->codec_dai;
        struct snd_soc_codec *codec = card->codec;
        mutex_lock(&pcm_mutex);
        /* apply codec digital mute */
        if (!codec->active)
                snd_soc_dai_digital_mute(codec_dai, 1);
        /* free any machine hw params */
        if (machine->ops && machine->ops->hw_free)
                machine->ops->hw_free(substream);
        /* free any DMA resources */
        if (platform->pcm_ops->hw_free)
                platform->pcm_ops->hw_free(substream);
        /* now free hw params for the DAI's  */
        if (codec_dai->ops->hw_free)
                codec_dai->ops->hw_free(substream, codec_dai);
        if (cpu_dai->ops->hw_free)
                cpu_dai->ops->hw_free(substream, cpu_dai);
        mutex_unlock(&pcm_mutex);
        return 0;
}
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux