AnsweredAssumed Answered


Question asked by Dan Vona on Feb 3, 2014
Latest reply on Aug 8, 2016 by RAJASEKARAN K



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
     * _sg'.
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?