dmaengine: xilinx_dma: Set dma_device directions
authorThomas Gessler <thomas.gessler@brueckmann-gmbh.de>
Wed, 7 May 2025 18:21:01 +0000 (20:21 +0200)
committerVinod Koul <vkoul@kernel.org>
Wed, 14 May 2025 13:50:07 +0000 (14:50 +0100)
Coalesce the direction bits from the enabled TX and/or RX channels into
the directions bit mask of dma_device. Without this mask set,
dma_get_slave_caps() in the DMAEngine fails, which prevents the driver
from being used with an IIO DMAEngine buffer.

Signed-off-by: Thomas Gessler <thomas.gessler@brueckmann-gmbh.de>
Reviewed-by: Suraj Gupta <suraj.gupta2@amd.com>
Tested-by: Folker Schwesinger <dev@folker-schwesinger.de>
Link: https://lore.kernel.org/r/20250507182101.909010-1-thomas.gessler@brueckmann-gmbh.de
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/xilinx/xilinx_dma.c

index cf4cd2f36e345658757a882ca89a61bcd82e8fd4..a34d8f0ceed8b18402954e5a27555e2a2978cb7b 100644 (file)
@@ -2909,6 +2909,8 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
                return -EINVAL;
        }
 
+       xdev->common.directions |= chan->direction;
+
        /* Request the interrupt */
        chan->irq = of_irq_get(node, chan->tdest);
        if (chan->irq < 0)