[alsa-devel] Query on Audio DMA using DMAEngine

Joel Fernandes joelf at ti.com
Wed Aug 14 06:30:54 CEST 2013


Hi Mike,

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
>> the
>> current davinci-pcm or EDMA controller (Unless you use a complicated
>> mechanism
>> 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
>> continuously
>> change addresses of the slots at some point or the other for a large
>> transfer.
> 
> 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?

Thanks,

-Joel



More information about the Alsa-devel mailing list