Re: [PATCH] ARM:SAMSUNG: Move S3C DMA driver to drivers/dma

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 8, 2011 at 12:13 AM, Mark Brown
<broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Jun 07, 2011 at 07:29:23PM +0100, Russell King - ARM Linux wrote:
>
>> 2. Circular buffer support has been added - see device_prep_dma_cyclic().
>
>> However, 2 is not really a requirement for audio - you can queue several
>> single slave transfers (one per period) initially, and then you get
>> callbacks as each transfer completes. ÂIn the callback, you can submit
>> an additional buffer, and continue doing so causing DMA to never end.
>
>> I believe that this is a saner approach than the circular buffer support,
>> and its what I tried to put together for the AMBA PL041 AACI DMA (but
>> unfortunately, ARMs platforms are totally broken when it comes to DMA.)
>
> Circular buffers are nice from the point of view of allowing you to
> (providing the hardware supports it) totally disable the periodic audio
> interrupts and leave the system to run for very long times off the
> normal system timers. ÂThis gives a small but non-zero power benefit
> providing the hardware gives you enough information about where the DMA
> is so you can find out if you need to mix in a notification, otherwise
> you get obvious latency issues.

This is what I called free-running circular buffer.
Besides power saving scenario, it is necessary for a fast peripheral
with shallow fifo.
The peripheral throws underrun errors, if the dma h/w doesn't support
LLI and cpu takes
a bit long loading-triggering the next transfer on DMA due to
irq-latency for some reason.


> You can also do this with an circular chain of sequential buffers of
> course.
This is what is called Circular buffer in Samsung's DMA API.
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux