[PATCH v2] dmaengine: xilinx_dma: Set dma_device directions

Thomas Gessler posted 1 patch 7 months, 1 week ago
drivers/dma/xilinx/xilinx_dma.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH v2] dmaengine: xilinx_dma: Set dma_device directions
Posted by Thomas Gessler 7 months, 1 week ago
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>
---
Changes in v2:
  - Change to Suraj's simpler version as per Radhey's request

 drivers/dma/xilinx/xilinx_dma.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index 3ad44afd0e74..8f26b6eff3f3 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -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)
Re: [PATCH v2] dmaengine: xilinx_dma: Set dma_device directions
Posted by Vinod Koul 7 months ago
On Wed, 07 May 2025 20:21:01 +0200, Thomas Gessler wrote:
> 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.
> 
> 

Applied, thanks!

[1/1] dmaengine: xilinx_dma: Set dma_device directions
      commit: 7e01511443c30a55a5ae78d3debd46d4d872517e

Best regards,
-- 
~Vinod
Re: [PATCH v2] dmaengine: xilinx_dma: Set dma_device directions
Posted by Folker Schwesinger 7 months, 1 week ago
On Wed May 7, 2025 at 8:21 PM CEST, Thomas Gessler wrote:
> 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>

Tested-by: Folker Schwesinger <dev@folker-schwesinger.de>

> ---
> Changes in v2:
>   - Change to Suraj's simpler version as per Radhey's request
>
>  drivers/dma/xilinx/xilinx_dma.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
> index 3ad44afd0e74..8f26b6eff3f3 100644
> --- a/drivers/dma/xilinx/xilinx_dma.c
> +++ b/drivers/dma/xilinx/xilinx_dma.c
> @@ -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)