Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1439920
| From | Kedareswara rao Appana <appana.durga.rao@xilinx.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH] dmaengine: xilinx: Fix race condition in axi dma cyclic dma mode |
| Date | 2016-07-09 10:50 +0200 |
| Message-ID | <rSW7v-xK-3@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
In cyclic DMA mode need to link the tail bd segment
with the head bd segment to process bd's in cyclic.
Current driver is doing this only for tx channel
needs to update the same for rx channel case also.
This patch fixes the same.
Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
---
drivers/dma/xilinx/xilinx_dma.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index cf47347..4e223d0 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -1895,14 +1895,15 @@ static struct dma_async_tx_descriptor *xilinx_dma_prep_dma_cyclic(
reg |= XILINX_DMA_CR_CYCLIC_BD_EN_MASK;
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, reg);
+ segment = list_last_entry(&desc->segments,
+ struct xilinx_axidma_tx_segment,
+ node);
+ segment->hw.next_desc = (u32) head_segment->phys;
+
/* For the last DMA_MEM_TO_DEV transfer, set EOP */
if (direction == DMA_MEM_TO_DEV) {
head_segment->hw.control |= XILINX_DMA_BD_SOP;
- segment = list_last_entry(&desc->segments,
- struct xilinx_axidma_tx_segment,
- node);
segment->hw.control |= XILINX_DMA_BD_EOP;
- segment->hw.next_desc = (u32) head_segment->phys;
}
return &desc->async_tx;
--
1.7.1
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH] dmaengine: xilinx: Fix race condition in axi dma cyclic dma mode Kedareswara rao Appana <appana.durga.rao@xilinx.com> - 2016-07-09 10:50 +0200 Re: [PATCH] dmaengine: xilinx: Fix race condition in axi dma cyclic dma mode Vinod Koul <vinod.koul@intel.com> - 2016-07-12 06:30 +0200
csiph-web