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

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Jun 7 14:43:30 EDT 2011


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.

You can also do this with an circular chain of sequential buffers of
course.

> 
> This also removes the need for the callback to be in IRQ context.
> 
> So I don't see that anything you've mentioned is a problem with the API
> as it stands today - there may be issues with the way the DMA engine
> driver has been implemented which cause it not to conform to what I've
> said above, but those are driver bugs and not a fault of the API.
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
"You grabbed my hand and we fell into it, like a daydream - or a fever."



More information about the linux-arm-kernel mailing list