[PATCH] dmaengine: xilinx_dma: Set dma_device directions

Pandey, Radhey Shyam radhey.shyam.pandey at amd.com
Wed May 7 03:20:51 PDT 2025


[AMD Official Use Only - AMD Internal Distribution Only]

> -----Original Message-----
> From: Pandey, Radhey Shyam
> Sent: Monday, March 17, 2025 12:18 PM
> To: Thomas Gessler <thomas.gessler at brueckmann-gmbh.de>;
> dmaengine at vger.kernel.org
> Cc: Vinod Koul <vkoul at kernel.org>; Simek, Michal <michal.simek at amd.com>;
> Marek Vasut <marex at denx.de>; Uwe Kleine-König <u.kleine-
> koenig at baylibre.com>; linux-arm-kernel at lists.infradead.org; linux-
> kernel at vger.kernel.org; Katakam, Harini <harini.katakam at amd.com>
> Subject: RE: [PATCH] dmaengine: xilinx_dma: Set dma_device directions
>
> > -----Original Message-----
> > From: Thomas Gessler <thomas.gessler at brueckmann-gmbh.de>
> > Sent: Friday, March 14, 2025 7:19 PM
> > To: dmaengine at vger.kernel.org
> > Cc: Thomas Gessler <thomas.gessler at brueckmann-gmbh.de>; Vinod Koul
> > <vkoul at kernel.org>; Simek, Michal <michal.simek at amd.com>; Marek Vasut
> > <marex at denx.de>; Pandey, Radhey Shyam
> <radhey.shyam.pandey at amd.com>;
> > Uwe Kleine-König <u.kleine-koenig at baylibre.com>; linux-arm-
> > kernel at lists.infradead.org; linux-kernel at vger.kernel.org
> > Subject: [PATCH] dmaengine: xilinx_dma: Set dma_device directions
> >
> > 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 at brueckmann-gmbh.de>
>
> Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey at amd.com>
> Thanks!
>
> > ---
> >  drivers/dma/xilinx/xilinx_dma.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/dma/xilinx/xilinx_dma.c
> > b/drivers/dma/xilinx/xilinx_dma.c index 108a7287f4cd..641aaf0c0f1c
> > 100644
> > --- a/drivers/dma/xilinx/xilinx_dma.c
> > +++ b/drivers/dma/xilinx/xilinx_dma.c
> > @@ -3205,6 +3205,10 @@ static int xilinx_dma_probe(struct
> > platform_device
> > *pdev)
> >             }
> >     }
> >
> > +   for (i = 0; i < xdev->dma_config->max_channels; i++)
> > +           if (xdev->chan[i])
> > +                   xdev->common.directions |= xdev->chan[i]->direction;
> > +

Suraj also worked on this patch internally and he did set direction in chan_probe().
So, I think we can switch to below implementation ?

--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -2909,6 +2909,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
                return -EINVAL;
        }

+       xdev->common.directions |= chan->direction;


> >     if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> >             for (i = 0; i < xdev->dma_config->max_channels; i++)
> >                     if (xdev->chan[i])
> > --
> > 2.43.0




More information about the linux-arm-kernel mailing list