dmaengine: DMA engine driver for Marvell XOR engine
commitff7b04796d9866327ea76e1393f1e902ef032f84
authorSaeed Bishara <saeed@marvell.com>
Tue, 8 Jul 2008 18:58:36 +0000 (8 11:58 -0700)
committerDan Williams <dan.j.williams@intel.com>
Tue, 8 Jul 2008 18:58:36 +0000 (8 11:58 -0700)
tree42fd30c8e2051e7c6acc15da363960647030d3d3
parentebabe2762607147d28aa395ea6df2a0ee7f795a1
dmaengine: DMA engine driver for Marvell XOR engine

The XOR engine found in Marvell's SoCs and system controllers
provides XOR and DMA operation, iSCSI CRC32C calculation, memory
initialization, and memory ECC error cleanup operation support.

This driver implements the DMA engine API and supports the following
capabilities:
- memcpy
- xor
- memset

The XOR engine can be used by DMA engine clients implemented in the
kernel, one of those clients is the RAID module.  In that case, I
observed 20% improvement in the raid5 write throughput, and 40%
decrease in the CPU utilization when doing array construction, those
results obtained on an 5182 running at 500Mhz.

When enabling the NET DMA client, the performance decreased, so
meanwhile it is recommended to keep this client off.

Signed-off-by: Saeed Bishara <saeed@marvell.com>
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dma/Kconfig
drivers/dma/Makefile
drivers/dma/mv_xor.c [new file with mode: 0644]
drivers/dma/mv_xor.h [new file with mode: 0644]
include/asm-arm/plat-orion/mv_xor.h [new file with mode: 0644]