On Tue, 19 Dec 2023 18:50:04 +0100 Paul Cercueil paul@crapouillou.net wrote:
This function can be used to initiate a scatter-gather DMA transfer, where the address and size of each segment is located in one entry of the dma_vec array.
The major difference with dmaengine_prep_slave_sg() is that it supports specifying the lengths of each DMA transfer; as trying to override the length of the transfer with dmaengine_prep_slave_sg() is a very tedious process. The introduction of a new API function is also justified by the fact that scatterlists are on their way out.
Note that dmaengine_prep_interleaved_dma() is not helpful either in that case, as it assumes that the address of each segment will be higher than the one of the previous segment, which we just cannot guarantee in case of a scatter-gather transfer.
Signed-off-by: Paul Cercueil paul@crapouillou.net
This and the next patch look fine to me as clearly simplify things for our usecases, but they are really something for the dmaengine maintainers to comment on.
Jonathan