Re: [PATCH 1/8] dmaengine: Add API to combine configuration and preparation (sg and single)
Bjorn Helgaas <[email protected]>
| Newsgroups | dev.linux.lists.mhi,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-nvme,org.kernel.vger.dmaengine,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <20251210225544.GA3542977@bhelgaas> |
On Mon, Dec 08, 2025 at 12:09:40PM -0500, Frank Li wrote: > 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 and > requires additional locking to ensure both steps complete atomically. > > Add a new API and callback device_prep_slave_sg_config that combines > configuration and preparation into a single operation. If the configuration > argument is passed as NULL, fall back to the existing implementation. Add "()" after function name. > Signed-off-by: Frank Li <[email protected]> > --- > include/linux/dmaengine.h | 64 +++++++++++++++++++++++++++++++++++++++++------ > 1 file changed, 57 insertions(+), 7 deletions(-) > > diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h > index 99efe2b9b4ea9844ca6161208362ef18ef111d96..6c563549133a28e26f1bdc367372b1e4a748afcf 100644 > --- a/include/linux/dmaengine.h > +++ b/include/linux/dmaengine.h > @@ -835,6 +835,8 @@ struct dma_filter { > * where the address and size of each segment is located in one entry of > * the dma_vec array. > * @device_prep_slave_sg: prepares a slave dma operation > + * (Depericated, use @device_prep_slave_sg_config) > + * @device_prep_slave_sg_config: prepares a slave dma operation s/Depericated/Deprecated/ s/slave dma/slave DMA/ to match other "DMA" uses