[alsa-devel] ASoC: fsl_ssi: How do I gracefully restart after a channel slip is detected?

Caleb Crome caleb at crome.org
Mon Nov 2 16:53:42 CET 2015


Hi Again,
  I'm definitely making progress towards a fully working FSL SSI port
in TDM mode.  The TX seems to be fairly robust.  However, there is a
new problem now.  The Rx can overrun, and what happens, I get an Rx
channel slip.  The DMA consuming data from the fifo is out of sync.

I can detect this with the Rx overrun ISR.  The question is, how do I
restart everything gracefully?  I somehow need to tell the DMA to
restart on a frame boundary, and I need to restart the SSI, correct?

I don't see any similar method to do this in the ESAI driver.

Or perhaps I'm missing something and there is a better way to avoid
the slip in the first place?

Thanks again,
  -Caleb


More information about the Alsa-devel mailing list