A handful of the DMAengine drivers use same routine to calculate the number of
SG entries needed for the given DMA transfer. Provide a common helper for them
and convert.
I left the new helper on SG level of API because brief grepping shows potential
candidates outside of DMA engine, e.g.:
drivers/crypto/chelsio/chcr_algo.c:154: nents += DIV_ROUND_UP(less, entlen);
drivers/spi/spi-stm32.c:1495: /* Count the number of entries needed */
Changelog v4:
- fixed compilation errors (Vinod)
v3: <20251113151603.3031717-1-andriy.shevchenko@linux.intel.com>
Changelog v3:
- added missed EXPORT_SYMBOL() (Bjorn)
- left the return type as signed int (as agreed with Bjorn)
- collected tags (Bjorn)
v2: <20251110103805.3562136-1-andriy.shevchenko@linux.intel.com>
Changelog v2:
- dropped outdated patches (only 9 years passed :-)
- rebased on top of the current kernel
- left API SG wide It might
v1: https://patchwork.kernel.org/project/linux-dmaengine/patch/20161021173535.100245-1-andriy.shevchenko@linux.intel.com/
Andy Shevchenko (13):
scatterlist: introduce sg_nents_for_dma() helper
dmaengine: altera-msgdma: use sg_nents_for_dma() helper
dmaengine: axi-dmac: use sg_nents_for_dma() helper
dmaengine: bcm2835-dma: use sg_nents_for_dma() helper
dmaengine: dw-axi-dmac: use sg_nents_for_dma() helper
dmaengine: k3dma: use sg_nents_for_dma() helper
dmaengine: lgm: use sg_nents_for_dma() helper
dmaengine: pxa-dma: use sg_nents_for_dma() helper
dmaengine: qcom: adm: use sg_nents_for_dma() helper
dmaengine: qcom: bam_dma: use sg_nents_for_dma() helper
dmaengine: sa11x0: use sg_nents_for_dma() helper
dmaengine: sh: use sg_nents_for_dma() helper
dmaengine: xilinx: xdma: use sg_nents_for_dma() helper
drivers/dma/altera-msgdma.c | 5 ++--
drivers/dma/bcm2835-dma.c | 19 +-------------
drivers/dma/dma-axi-dmac.c | 5 +---
.../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 6 ++---
drivers/dma/k3dma.c | 9 ++-----
drivers/dma/lgm/lgm-dma.c | 9 ++-----
drivers/dma/pxa_dma.c | 5 ++--
drivers/dma/qcom/bam_dma.c | 9 ++-----
drivers/dma/qcom/qcom_adm.c | 9 +++----
drivers/dma/sa11x0-dma.c | 6 ++---
drivers/dma/sh/shdma-base.c | 5 ++--
drivers/dma/xilinx/xdma.c | 6 ++---
include/linux/scatterlist.h | 2 ++
lib/scatterlist.c | 26 +++++++++++++++++++
14 files changed, 52 insertions(+), 69 deletions(-)
--
2.50.1