If there is no DMA buffer descriptor, the DMA halts, not idles. Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> Acked-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> --- changed from v3: Fixed for TX path as well as RX
hw/xilinx_axidma.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xilinx_axidma.c b/hw/xilinx_axidma.c index 02700ea..2bbfea1 100644 --- a/hw/xilinx_axidma.c +++ b/hw/xilinx_axidma.c @@ -276,7 +276,7 @@ static void stream_process_mem2s(struct Stream *s, stream_desc_load(s, s->regs[R_CURDESC]); if (s->desc.status & SDESC_STATUS_COMPLETE) { - s->regs[R_DMASR] |= DMASR_IDLE; + s->regs[R_DMASR] |= DMASR_HALTED; break; } @@ -331,7 +331,7 @@ static void stream_process_s2mem(struct Stream *s, stream_desc_load(s, s->regs[R_CURDESC]); if (s->desc.status & SDESC_STATUS_COMPLETE) { - s->regs[R_DMASR] |= DMASR_IDLE; + s->regs[R_DMASR] |= DMASR_HALTED; break; } -- 1.7.0.4