On Thu, Sep 17, 2015 at 03:40:33PM -0700, Caleb Crome wrote:
The more I think of this channel synchronization issue, the thorinier it gets.
Basically, with the TLV320AIC series of codecs, whenever any of the DAC or ADC channels are powered up on any codec, the MCLK needs to be stopped, all DACs/ADCs turned off, then configuration can happen, then all DACs/ADCs can be turned back on, then MCLK starts again. That's the only way to ensure phase/delay accuracy among several codecs.
So, going from play-only to play+record requires MCLK be stopped, then restarted.
Aye. Lots of clocks in lots of domains. Also pay penalty of any delays needed to stabilise ADCs.
Same general issue with many single codecs though, if capture vs playback synchronisation required.
Maybe it's not too terrible. Any thoughts?
In this scenario my preference would be to always configure the codecs and DMA for playback and capture, and do any gating higher in the stack; e.g. send zero samples if there is no playback stream, and discard samples if there is no capture stream.