diff options
author | 2025-02-16 16:47:41 -0500 | |
---|---|---|
committer | 2025-03-11 02:26:40 +0530 | |
commit | e7240aba2053d437a661d946b3d413f310138a45 (patch) | |
tree | e6276206706adfbf7508ca00893c208990851362 /drivers/dma | |
parent | dmaengine: ti: k3-udma: Enable second resource range for BCDMA and PKTDMA (diff) | |
download | linux-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.c | 8 |
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 |