summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/dma.c
diff options
context:
space:
mode:
authormanjugk manjugk <manjugk@ti.com>2010-03-04 08:11:56 +0100
committerTony Lindgren <tony@atomide.com>2010-04-23 02:34:27 +0200
commit519e61666f4030426fc539d4e7102dc2bad41113 (patch)
tree5553802fccc286236dd0a4c6ba9f5c8a3e90e4e9 /arch/arm/plat-omap/dma.c
parentomap: gpio: fix incorrect matching of IRQ_TYPE_EDGE_BOTH (diff)
downloadlinux-519e61666f4030426fc539d4e7102dc2bad41113.tar.xz
linux-519e61666f4030426fc539d4e7102dc2bad41113.zip
omap: DMA: Init CDAC to zero
The register DMA4_CDAC needs to be initialized to zero before starting DMA transfer. Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Govindraj R <govindraj.raja@ti.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Reported-by:S, Venkatraman <svenkatr@ti.com> Signed-off-by: Manjunatha GK <manjugk@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/plat-omap/dma.c')
-rw-r--r--arch/arm/plat-omap/dma.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 2ab224c8e16c..f6c9bdc95bce 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -936,6 +936,15 @@ void omap_start_dma(int lch)
{
u32 l;
+ /*
+ * The CPC/CDAC register needs to be initialized to zero
+ * before starting dma transfer.
+ */
+ if (cpu_is_omap15xx())
+ dma_write(0, CPC(lch));
+ else
+ dma_write(0, CDAC(lch));
+
if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) {
int next_lch, cur_lch;
char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];