[alsa-devel] fsl_ssi.c: Getting channel slips with fsl_ssi.c in TDM (network) mode.

Nicolin Chen nicoleotsuka at gmail.com
Thu Oct 29 18:19:37 CET 2015


On Thu, Oct 29, 2015 at 06:44:12AM -0700, Caleb Crome wrote:
> > Reported by user space? Are you saying that's an ALSA underrun in
> > the user space, not a hardware underrun reported by the IRQ in the
> > driver? They are quite different. ALSA underrun comes from the DMA
> > buffer gets underrun while the other one results from FIFO feeding
> > efficiency. For ALSA underrun, enlarging the playback period size
> > and period number will ease the problem:
 
> Sometimes they happen at the same time.  So, I run aplay, and all is

The 'they' is indicating ALSA underrun + hardware underrun or ALSA
underrun + channel slip? It's not quite logical for a channel slip
resulting from an ALSA underrun as it should restart by calling the
trigger() functions in DAI drivers IIRC.

> fine.  Then the user space app will underrun, and then I look at the
> scope, and the channels have slipped.  So somehow the start/restart
> after the underrun is not always perfect I guess.

> Is there any mechanism for the DMA fifo underruns to be reported back
> to user space?  There certainly should be, because the consequences

No. The release from Freescale official tree has a reset procedure
applied to ESAI underrun but not SSI but I guess you may want to
refer to that.

> are catastrophic, yet the user space app goes on as if everything is
> just great.  Much, much worse than the underrun that is reported (i.e.
> a skip in audio is bad but sometimes tolerable.  A channel slip is
> permanent and absolutely intolerable).


More information about the Alsa-devel mailing list