[alsa-devel] fsl_ssi.c: Roberto's problem: ssi hangs after some number of samples

Roberto Fichera kernel at tekno-soft.it
Thu Nov 5 12:48:00 CET 2015


On 11/05/2015 12:30 PM, Fabio Estevam wrote:
> On Thu, Nov 5, 2015 at 8:03 AM, Roberto Fichera <kernel at tekno-soft.it> wrote:
>
>> Following your suggestion, I've increased the buffer size to 2K and set the period to fifo_length - 2 (13),
>> with that I'm now running substantially smooth except 3 EVTERR on RX DMA over 4 million of interrupts.
>>
>> Thanks Nicolin! I'm quite happy now!
> That's good progress, Roberto.
>
> It would be nice if you and Caleb could post the patches to the mailing list.
>

Indeed! Now the TDM is stable, I've also found the reason of the EVTERRs, which was related to some stale
code I've used to enable and disable both RDMAE and TDMAE bits to try to reset the transfers.
Once removed that code everything is looks ok now.

Regarding patches, well, from my side there isn't nothing special compared to the original fsl_ssi.c code.
I'm basically running against a very skinny fsl_ssi.c version, I've just setup a bit larger DMA buffer, from
16bytes to 2K, and now reduced the DMA period to 8 because I'm mostly comfortable with that size to simplify
sampling exchange against DAHDI subsystem within my DMA callbacks.

In a few words, my problem was related due to a DMA buffer too small.

What eventually might be interesting to have is the INTRMASK and EVTERR DMA setting to trigger DMA
related errors, but I guess this need to be discussed elsewhere.


More information about the Alsa-devel mailing list