
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).