summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-tegra/dma.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/dma.c b/arch/arm/mach-tegra/dma.c
index 1c415083e8c4..e4fe67fcba95 100644
--- a/arch/arm/mach-tegra/dma.c
+++ b/arch/arm/mach-tegra/dma.c
@@ -394,7 +394,8 @@ skip_status:
spin_unlock_irqrestore(&ch->lock, irq_flags);
/* Callback should be called without any lock */
- req->complete(req);
+ if(req->complete)
+ req->complete(req);
return 0;
}
EXPORT_SYMBOL(tegra_dma_dequeue_req);
@@ -757,7 +758,10 @@ static void tegra_dma_update_hw(struct tegra_dma_channel *ch,
u32 apb_ptr;
u32 csr;
- csr = CSR_IE_EOC | CSR_FLOW;
+ csr = CSR_FLOW;
+ if (req->complete || req->threshold)
+ csr |= CSR_IE_EOC;
+
ahb_seq = AHB_SEQ_INTR_ENB;
switch (req->req_sel) {