[PATCH 2/9] dmaengine: dma-axi-dmac: Use bus width capability helpers
Nuno Sá via B4 Relay <[email protected]> Thu, 30 Jul 2026 15:23:09 +0100
| Newsgroups | org.kernel.vger.dmaengine,org.kernel.feeds.b4-sent,org.kernel.vger.linux-iio |
|---|---|
| Message-ID | <20260730-dmaengine-support-wider-dma-masks-v1-2-3732f1f9d9ca@analog.com> |
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]> --- 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