]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
dmaengine: sa11x0: use sg_nents_for_dma() helper
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 8 Jan 2026 10:50:22 +0000 (11:50 +0100)
committerVinod Koul <vkoul@kernel.org>
Fri, 9 Jan 2026 03:06:00 +0000 (08:36 +0530)
Instead of open coded variant let's use recently introduced helper.

Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260108105619.3513561-12-andriy.shevchenko@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/sa11x0-dma.c

index dc1a9a05252ec6aaaa088c7322c6e09264f45313..86f1d7461f56bdd3f3b03589abca26012ae0d1ac 100644 (file)
@@ -526,7 +526,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
        struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
        struct sa11x0_dma_desc *txd;
        struct scatterlist *sgent;
-       unsigned i, j = sglen;
+       unsigned int i, j;
        size_t size = 0;
 
        /* SA11x0 channels can only operate in their native direction */
@@ -542,10 +542,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
 
        for_each_sg(sg, sgent, sglen, i) {
                dma_addr_t addr = sg_dma_address(sgent);
-               unsigned int len = sg_dma_len(sgent);
 
-               if (len > DMA_MAX_SIZE)
-                       j += DIV_ROUND_UP(len, DMA_MAX_SIZE & ~DMA_ALIGN) - 1;
                if (addr & DMA_ALIGN) {
                        dev_dbg(chan->device->dev, "vchan %p: bad buffer alignment: %pad\n",
                                &c->vc, &addr);
@@ -553,6 +550,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
                }
        }
 
+       j = sg_nents_for_dma(sg, sglen, DMA_MAX_SIZE & ~DMA_ALIGN);
        txd = kzalloc(struct_size(txd, sg, j), GFP_ATOMIC);
        if (!txd) {
                dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);