Hi Paul, Am 15.02.23 um 11:48 schrieb Paul Cercueil:
Hi, I am working on adding support for DMABUFs in the IIO subsystem. One thing we want there, is the ability to specify the number of bytes to transfer (while still defaulting to the DMABUF size). Since dma_buf_map_attachment() returns a sg_table,
Please don't assume that this is an sg_table. We just used it as container for DMA addresses, but this has proven to be a mistake.
There is work underway to replace the sg_table with (for example) just an array of DMA addresses.
I basically have two options, and I can't decide which one is the best (or the less ugly): - Either I add a new API function similar to dmaengine_prep_slave_sg(), which still takes a scatterlist as argument but also takes the number of bytes as argument; - Or I add a function to duplicate the scatterlist and then shrink it manually, which doesn't sound like a good idea either. What would be the recommended way?
I strongly recommend to come up with a new function which only takes DMA addresses and separate segment length.
Regards, Christian.
Cheers, -Paul