summaryrefslogtreecommitdiff
path: root/drivers/dma/lgm/lgm-dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma/lgm/lgm-dma.c')
-rw-r--r--drivers/dma/lgm/lgm-dma.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/dma/lgm/lgm-dma.c b/drivers/dma/lgm/lgm-dma.c
index 8173c3f1075a..a7b9cf30f6ad 100644
--- a/drivers/dma/lgm/lgm-dma.c
+++ b/drivers/dma/lgm/lgm-dma.c
@@ -1164,8 +1164,8 @@ ldma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
struct dw2_desc *hw_ds;
struct dw2_desc_sw *ds;
struct scatterlist *sg;
- int num = sglen, i;
dma_addr_t addr;
+ int num, i;
if (!sgl)
return NULL;
@@ -1173,12 +1173,7 @@ ldma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
if (d->ver > DMA_VER22)
return ldma_chan_desc_cfg(chan, sgl->dma_address, sglen);
- for_each_sg(sgl, sg, sglen, i) {
- avail = sg_dma_len(sg);
- if (avail > DMA_MAX_SIZE)
- num += DIV_ROUND_UP(avail, DMA_MAX_SIZE) - 1;
- }
-
+ num = sg_nents_for_dma(sgl, sglen, DMA_MAX_SIZE);
ds = dma_alloc_desc_resource(num, c);
if (!ds)
return NULL;