[alsa-devel] Query on Audio DMA using DMAEngine
joelf at ti.com
Wed Aug 14 06:30:54 CEST 2013
On 07/02/2013 12:50 AM, Mike Looijmans wrote:
>> Either way I'm sure your multi-slot approach is superior, but I don't
>> see how
>> you can get away with not updating the DMA addresses on every IRQ with
>> current davinci-pcm or EDMA controller (Unless you use a complicated
>> like ping-pong where the address updates take care of itself). If you
>> are using
>> a set of chained slots, you only have so many slots so you have to
>> change addresses of the slots at some point or the other for a large
> I use a chain like this:
> DMA1 -> DMA2 -> DMA... -> DMA1
> This meant I had to use a DMA PARAM slot for every "period". The OMAP
> L138 has 128 of those slots, so it's no problem to use a bunch of them.
> Because the chain is cyclic, there is no need to update any DMA
> parameter while running. All that ALSA needs to do is empty the buffer
> before the cycle completes and the current position gets overwritten.
Replying to this thread after a long time but just wondering, how do you
guarantee in your implementation that DMA will not empty the buffer
faster than it is filled?
More information about the Alsa-devel