I have a few questions for the Linux BSP developers. My customer has a working implementation of the IMX6 SDMA unit doing a memory to memory transfer on the 3.0.35 Linux BSP. This implementation is based on the Linux dmaengine interface. It is utilizing two scatter gather lists as described in the ims-sdma.c source (see comment). Moving forward to the 3.10.9 and 3.10.17-r0 that support has changed and appears to have been removed.
Here is a comment from the imx-sdma.c BSP 3.0.35 source.
* For SDMA M2M use, we need 2 scatterlists, the src addresses are
* stored in the first sg, and the dst addresses are stored in the
* second sg. In the former code, when the first sg entered 'sdma_
* prep_slave_sg', 'sdmac->status' would be set to 'DMA_IN_PROGRESS',
* and the second sg would return 'NULL' when entered 'sdma_prep_slave
* _sg'. To avoid this error, in the code, we check if for M2M use,
* the second sg will not return 'NULL' when enters 'sdma_prep_slave
Can you answer the following questions or put me in touch with a BSP developer who can?
Does the Linux BSP 3.10.17-r0 support IMX6 SDMA memory to memory transfers through the Linux dmaengine interface? If so, can I get details on how to use the dmaengine interface for memory to memory transfers as this seems to have changed from 3.0.35? If not, is there a reason it was removed or a plan to fix?