Re: [PATCH 2/9] dmaengine: dma-axi-dmac: Use bus width capability helpers
Frank Li <[email protected]> Thu, 30 Jul 2026 14:23:09 -0500
| Newsgroups | org.kernel.vger.dmaengine,org.kernel.vger.linux-iio |
|---|---|
| Message-ID | <amuknWF-B6OZvf9i@SMW015318> |
On Thu, Jul 30, 2026 at 03:23:09PM +0100, Nuno Sá via B4 Relay wrote: > [You don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > From: Nuno Sá <[email protected]> > > Advertise the source and destination bus widths through the new > dma_set_{src,dst}_bus_width() helpers instead of open-coding the legacy > BIT() mask. This moves the driver onto the representation that can > express widths of 32 bytes and above while keeping the legacy u32 fields > populated during the transition. > > While at it, give the channel width members their proper > enum dma_slave_buswidth type. > > Signed-off-by: Nuno Sá <[email protected]> > --- Reviewed-by: Frank Li <[email protected]> > drivers/dma/dma-axi-dmac.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c > index d47ff27e1408..26912330e3c8 100644 > --- a/drivers/dma/dma-axi-dmac.c > +++ b/drivers/dma/dma-axi-dmac.c > @@ -152,8 +152,8 @@ struct axi_dmac_chan { > struct list_head active_descs; > enum dma_transfer_direction direction; > > - unsigned int src_width; > - unsigned int dest_width; > + enum dma_slave_buswidth src_width; > + enum dma_slave_buswidth dest_width; > unsigned int src_type; > unsigned int dest_type; > > @@ -1262,8 +1262,13 @@ static int axi_dmac_probe(struct platform_device *pdev) > dma_dev->device_terminate_all = axi_dmac_terminate_all; > dma_dev->device_synchronize = axi_dmac_synchronize; > dma_dev->dev = &pdev->dev; > - dma_dev->src_addr_widths = BIT(dmac->chan.src_width); > - dma_dev->dst_addr_widths = BIT(dmac->chan.dest_width); > + ret = dma_set_src_bus_width(dma_dev, dmac->chan.src_width); > + if (ret) > + return ret; > + > + ret = dma_set_dst_bus_width(dma_dev, dmac->chan.dest_width); > + if (ret) > + return ret; > dma_dev->directions = BIT(dmac->chan.direction); > dma_dev->residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR; > dma_dev->max_sg_burst = 31; /* 31 SGs maximum in one burst */ > > -- > 2.55.0 > >