]> git.baikalelectronics.ru Git - kernel.git/commit
DMA: sa11x0: add SA-11x0 DMA driver
authorRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Jan 2012 21:44:07 +0000 (21:44 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 7 Mar 2012 11:32:21 +0000 (11:32 +0000)
commit4d43557af84c91a0717d84091ad03ebb036bb5cf
tree3dc5a72a6f25a48dfea6842b9e11af1b209ccec2
parent76e68e22a5cdf0073c7c2c9d6a002e3f2dac7e04
DMA: sa11x0: add SA-11x0 DMA driver

Add support for the SA-11x0 DMA driver, which replaces the private
API version in arch/arm/mach-sa1100/dma.c.

We model this as a set of virtual DMA channels, one for each request
signal, and assign the virtual DMA channel to a physical DMA channel
when there is work to be done.  This allows DMA users to claim their
channels, and hold them while not in use, without affecting the
availability of the physical channels.

Another advantage over this approach, compared to the private version,
is that a channel can be reconfigured on the fly without having to
release and re-request it - which for the IrDA driver, allows us to
use DMA for SIR mode transmit without eating up three physical
channels.  As IrDA is half-duplex, we actually only need one physical
channel, and this architecture allows us to achieve that.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/dma/Kconfig
drivers/dma/Makefile
drivers/dma/sa11x0-dma.c [new file with mode: 0644]
include/linux/sa11x0-dma.h [new file with mode: 0644]