List,
My code in driver looks like:
static struct snd_soc_dai_ops davinci_mcasp_dai_ops = {
.startup = davinci_mcasp_startup,
.trigger = davinci_mcasp_trigger,
.hw_params = davinci_mcasp_hw_params,
.set_fmt = davinci_mcasp_set_dai_fmt,
};
Trigger function, davinci_mcasp_trigger(), is called only once when do arecord or aplay from command line. Works perfect.
When combine both together and use ping pong buffers, if no (AEC) is introduced, sound is good. After adding (AEC- Acoustic Echo Canceler),
davinci_mcasp_trigger() is constantly called for start/close on playback side respectively and complain underrun (CPU is %90 usage).
Increase ping-pong buffers do not stop triggering.
Any help will be appreciated!
---henry