atmel-mci: Add experimental DMA support
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Wed, 30 Jul 2008 18:29:03 +0000 (20:29 +0200)
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Sun, 5 Oct 2008 18:39:21 +0000 (20:39 +0200)
commit65e8b083fc8ec303499baa1924ae032d46d29990
tree4c3e1b4cb6c18e2abe55e590b75e97edf4243cc7
parent965ebf33ea5afb6386f5b57cc71e6572253746b3
atmel-mci: Add experimental DMA support

This adds support for DMA transfers through the generic DMA engine
framework with the DMA slave extensions.

The driver has been tested using mmc-block and ext3fs on several SD,
SDHC and MMC+ cards. Reads and writes work fine, with read transfer
rates up to 7.5 MiB/s on fast cards with debugging disabled.

Unfortunately, the driver has been known to lock up from time to time
with DMA enabled, so DMA support is currently optional and marked
EXPERIMENTAL. However, I didn't see any problems while testing 13
different cards (MMC, SD and SDHC of different brands and sizes), so I
suspect the "Initialize BLKR before sending data transfer command" fix
that was posted earlier fixed this as well.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
arch/avr32/include/asm/atmel-mci.h
arch/avr32/mach-at32ap/at32ap700x.c
drivers/mmc/host/Kconfig
drivers/mmc/host/atmel-mci.c