diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-02-01 10:22:47 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-02-01 10:22:47 +0400 |
commit | 8058e14259ddc8c1824387198fc53700ed4cccc9 (patch) | |
tree | faffb83ca5173e5f3cbfd4170de603ada4812e23 /drivers/dma/tegra20-apb-dma.c | |
parent | 9ddf1aeb2134e72275c97a2c6ff2e3eb04f2f27a (diff) | |
parent | 7da58046482fceb17c4a0d4afefd9507ec56de7f (diff) | |
download | linux-8058e14259ddc8c1824387198fc53700ed4cccc9.tar.xz |
Merge branch 'usb-audio-fix' of git://git.alsa-project.org/alsa-kprivate into for-linus
Diffstat (limited to 'drivers/dma/tegra20-apb-dma.c')
-rw-r--r-- | drivers/dma/tegra20-apb-dma.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index c39e61bc8172..3cad856fe67f 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -266,6 +266,7 @@ static struct tegra_dma_desc *tegra_dma_desc_get( if (async_tx_test_ack(&dma_desc->txd)) { list_del(&dma_desc->node); spin_unlock_irqrestore(&tdc->lock, flags); + dma_desc->txd.flags = 0; return dma_desc; } } @@ -1050,7 +1051,9 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic( TEGRA_APBDMA_AHBSEQ_WRAP_SHIFT; ahb_seq |= TEGRA_APBDMA_AHBSEQ_BUS_WIDTH_32; - csr |= TEGRA_APBDMA_CSR_FLOW | TEGRA_APBDMA_CSR_IE_EOC; + csr |= TEGRA_APBDMA_CSR_FLOW; + if (flags & DMA_PREP_INTERRUPT) + csr |= TEGRA_APBDMA_CSR_IE_EOC; csr |= tdc->dma_sconfig.slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT; apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1; @@ -1095,7 +1098,8 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic( mem += len; } sg_req->last_sg = true; - dma_desc->txd.flags = 0; + if (flags & DMA_CTRL_ACK) + dma_desc->txd.flags = DMA_CTRL_ACK; /* * Make sure that mode should not be conflicting with currently |