[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