diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-tegra/dma.c | 8 |
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) { |