aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorMatthew Majewski <mattwmajewski@gmail.com>2025-02-16 16:47:41 -0500
committerVinod Koul <vkoul@kernel.org>2025-03-11 02:26:40 +0530
commite7240aba2053d437a661d946b3d413f310138a45 (patch)
treee6276206706adfbf7508ca00893c208990851362 /drivers/dma
parentdmaengine: ti: k3-udma: Enable second resource range for BCDMA and PKTDMA (diff)
downloadlinux-rng-e7240aba2053d437a661d946b3d413f310138a45.tar.xz
linux-rng-e7240aba2053d437a661d946b3d413f310138a45.zip
dmaengine: ti: edma: support sw triggered chans in of_edma_xlate()
The .of_edma_xlate() function always sets the hw_triggered flag to true. This causes sw triggered channels consumed via the device-tree to not function properly, as the driver incorrectly assumes they are hw triggered. Modify the xlate() function to correctly set the hw_triggered flag to false for channels reserved for memcpy operation (ie, sw triggered). Signed-off-by: Matthew Majewski <mattwmajewski@gmail.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com> Link: https://lore.kernel.org/r/20250216214741.207538-1-mattwmajewski@gmail.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/ti/edma.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index b1a54655e6ce..3ed406f08c44 100644
--- a/drivers/dma/ti/edma.c
+++ b/drivers/dma/ti/edma.c
@@ -2259,8 +2259,12 @@ static struct dma_chan *of_edma_xlate(struct of_phandle_args *dma_spec,
return NULL;
out:
- /* The channel is going to be used as HW synchronized */
- echan->hw_triggered = true;
+ /*
+ * The channel is going to be HW synchronized, unless it was
+ * reserved as a memcpy channel
+ */
+ echan->hw_triggered =
+ !edma_is_memcpy_channel(i, ecc->info->memcpy_channels);
return dma_get_slave_channel(chan);
}
#else