[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251208-dma_prep_config-v1-0-53490c5e1e2a@nxp.com>
Date: Mon, 08 Dec 2025 12:09:39 -0500
From: Frank Li <Frank.Li@....com>
To: Vinod Koul <vkoul@...nel.org>, Manivannan Sadhasivam <mani@...nel.org>,
Krzysztof WilczyĆski <kwilczynski@...nel.org>,
Kishon Vijay Abraham I <kishon@...nel.org>,
Bjorn Helgaas <bhelgaas@...gle.com>, Christoph Hellwig <hch@....de>,
Sagi Grimberg <sagi@...mberg.me>, Chaitanya Kulkarni <kch@...dia.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
"David S. Miller" <davem@...emloft.net>,
Nicolas Ferre <nicolas.ferre@...rochip.com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Claudiu Beznea <claudiu.beznea@...on.dev>, Koichiro Den <den@...inux.co.jp>,
Niklas Cassel <cassel@...nel.org>
Cc: dmaengine@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org, linux-nvme@...ts.infradead.org,
mhi@...ts.linux.dev, linux-arm-msm@...r.kernel.org,
linux-crypto@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
imx@...ts.linux.dev, Frank Li <Frank.Li@....com>
Subject: [PATCH 0/8] dmaengine: Add new API to combine onfiguration and
descriptor preparation
Previously, configuration and preparation required two separate calls. This
works well when configuration is done only once during initialization.
However, in cases where the burst length or source/destination address must
be adjusted for each transfer, calling two functions is verbose.
if (dmaengine_slave_config(chan, &sconf)) {
dev_err(dev, "DMA slave config fail\n");
return -EIO;
}
tx = dmaengine_prep_slave_single(chan, dma_local, len, dir, flags);
After new API added
tx = dmaengine_prep_slave_single(chan, dma_local, len, dir, flags, &sconf);
Additional, prevous two calls requires additional locking to ensure both
steps complete atomically.
mutex_lock()
dmaengine_slave_config()
dmaengine_prep_slave_single()
mutex_unlock()
after new API added, mutex lock can be moved. See patch
nvmet: pci-epf: Use dmaengine_prep_slave_single_config() API
Signed-off-by: Frank Li <Frank.Li@....com>
---
Frank Li (8):
dmaengine: Add API to combine configuration and preparation (sg and single)
PCI: endpoint: pci-epf-test: use new DMA API to simple code
dmaengine: dw-edma: Use new .device_prep_slave_sg_config() callback
dmaengine: dw-edma: Pass dma_slave_config to dw_edma_device_transfer()
nvmet: pci-epf: Remove unnecessary dmaengine_terminate_sync() on each DMA transfer
nvmet: pci-epf: Use dmaengine_prep_slave_single_config() API
PCI: epf-mhi:Using new API dmaengine_prep_slave_single_config() to simple code.
crypto: atmel: Use dmaengine_prep_slave_single_config() API
drivers/crypto/atmel-aes.c | 10 ++---
drivers/dma/dw-edma/dw-edma-core.c | 38 +++++++++++-----
drivers/nvme/target/pci-epf.c | 21 +++------
drivers/pci/endpoint/functions/pci-epf-mhi.c | 52 +++++++---------------
drivers/pci/endpoint/functions/pci-epf-test.c | 8 +---
include/linux/dmaengine.h | 64 ++++++++++++++++++++++++---
6 files changed, 111 insertions(+), 82 deletions(-)
---
base-commit: bc04acf4aeca588496124a6cf54bfce3db327039
change-id: 20251204-dma_prep_config-654170d245a2
Best regards,
--
Frank Li <Frank.Li@....com>
Powered by blists - more mailing lists