Skip to content

Commit bbcbafb

Browse files
nunojsavinodkoul
authored andcommitted
dma: dma-axi-dmac: fix HW scatter-gather not looking at the queue
For HW scatter gather transfers we still need to look for the queue. The HW is capable of queueing 3 concurrent transfers and if we try more than that we'll get the submit queue full and should return. Otherwise, if we go ahead and program the new transfer, we end up discarding it. Fixes: e97dc74 ("dmaengine: axi-dmac: Add support for scatter-gather transfers") Signed-off-by: Nuno Sá <nuno.sa@analog.com> base-commit: 3980351 change-id: 20251104-axi-dmac-fixes-and-improvs-e3ad512a329c Acked-by: Michael Hennerich <michael.hennerich@analog.com> Link: https://patch.msgid.link/20251104-axi-dmac-fixes-and-improvs-v1-2-3e6fd9328f72@analog.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 9bd2571 commit bbcbafb

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

drivers/dma/dma-axi-dmac.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,9 @@ static void axi_dmac_start_transfer(struct axi_dmac_chan *chan)
233233
unsigned int flags = 0;
234234
unsigned int val;
235235

236-
if (!chan->hw_sg) {
237-
val = axi_dmac_read(dmac, AXI_DMAC_REG_START_TRANSFER);
238-
if (val) /* Queue is full, wait for the next SOT IRQ */
239-
return;
240-
}
236+
val = axi_dmac_read(dmac, AXI_DMAC_REG_START_TRANSFER);
237+
if (val) /* Queue is full, wait for the next SOT IRQ */
238+
return;
241239

242240
desc = chan->next_desc;
243241

0 commit comments

Comments
 (0)