mmc: S5P: Support DMA restarts at buffer boundaries
authorAnton Staaf <robotboy@chromium.org>
Thu, 30 Jun 2011 09:55:08 +0000 (09:55 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 3 Sep 2011 20:40:47 +0000 (22:40 +0200)
commit9070872bb343e07945bf3882c572da82901c637d
tree35a777748213c0f01eecac00b6b5a4d809d4df50
parent34d34b88b6b3d947de86dae81574bdde85b8d01e
mmc: S5P: Support DMA restarts at buffer boundaries

Currently if a DMA buffer straddles a buffer alignment boundary
(512KiB) then the DMA engine will pause and generate a DMA
interrupt.  Since the DMA interrupt is not enabled it will hang
the MMC driver.

This patch adds support for restarting the DMA transfer.  The
SYSTEM_ADDRESS register contains the next address that would have
been read/written when a boundary is hit.  So we can read that
and write it back.  The write triggers the resumption of the
transfer.

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Tested-by : Jaehoon Chung <jh80.chung@samsung.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
drivers/mmc/s5p_mmc.c