[PATCH V2 6/6] spi/spi-pl022: Request/free DMA channels as and when required.

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Aug 10 05:00:42 EDT 2011


On Wed, Aug 10, 2011 at 02:20:59PM +0530, Viresh Kumar wrote:
> Currently we request DMA channels at probe time and free them at remove. They
> are always occupied, irrespective of their usage.
> 
> They must be allocated when they are required and must be freed after we are
> done with transfers. So that they can be used by other users.

Which DMA engine driver requires this?

Normally, when we have DMA engine drivers with multiple request signals,
the slave peripheral side publishes several virtual channels which are
claimed by the peripheral drivers.  This (amongst other things) allows
the peripheral drivers to hold claim to one of the virtual channels
all the time that it's required.

This actually results in better usage of the DMA controller, as the
virtual channels can be assigned to physical channels dynamically
according to what the physical channels are doing.

Plus, actually, the idea that DMA channels should be a short-term thing
is broken as soon as you start considering things like UARTs, where you
need a channel tied up long-term for the receive side of things.



More information about the linux-arm-kernel mailing list