[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 11:03:30 CET 2015


On 11/04/2015 07:11 PM, Nicolin Chen wrote:
> On Wed, Nov 04, 2015 at 06:52:12PM +0100, Roberto Fichera wrote:
>
>>> I notice your DMA buffer length is very short, which would require
>>> very frequency interrupts to service, right?   Can you increase your
>>> DMA buffer length by increasing the period size?  Maybe that would
>>> help reduce the likelyhood of a failure.  
>> Not sure if this can help! SSI TDM is set to 32 slots but only 2 are masked. So every frame only
>> 2 slots are pushed/pulled from the FIFOs. maxburst is set to pull a block of 8 elements from the
>> FIFOs, DMA cyclic call it period. So the full DMA buffer is filled in buffer size / period DMA iterations.
> A smaller period size may course DMA buffer over/underrun -- ALSA
> over/underrun even though it seems that you didn't report any.
>
> And apparently SDMA would get more interrupt/callbacks. I would
> suggest a larger period size and buffer size although I cannot
> tie your problem with the size. But you may try.
>

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!



More information about the Alsa-devel mailing list