From: Matthew Majewski Date: Sun, 16 Feb 2025 21:47:41 +0000 (-0500) Subject: dmaengine: ti: edma: support sw triggered chans in of_edma_xlate() X-Git-Tag: v6.15-rc1~75^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e7240aba2053d437a661d946b3d413f310138a45;p=thirdparty%2Flinux.git 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 Acked-by: Peter Ujfalusi Link: https://lore.kernel.org/r/20250216214741.207538-1-mattwmajewski@gmail.com Signed-off-by: Vinod Koul --- diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c index b1a54655e6ced..3ed406f08c442 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