On Thu, Apr 25, 2013 at 10:36 AM, Arnd Bergmann <a...@arndb.de> wrote: > On Thursday 25 April 2013, Linus Walleij wrote: >> Are we now sacrificing that ability on the altar of simplification? >> >> I actually think not, but that we should do periph-to-periph transfers >> in some other way, and that the .dir attribute should go away from >> the struct stedma40_chan_cfg as well but I'm not entirely sure. >> Someone else? > > The dma-engine core has no support for device-to-device transfers,
It has this: DMA_DEV_TO_DEV (enum dma_transfer_direction) so it has been thought of. Alas, it is unused for now. > and as far as I understand that is neither considered a useful > feature in real life, nor easy to add, so I don't think it matters > much here. It is a very useful feature in real life, we used that for PCM transfer in U300. (I have heard this from other handset vendors too, so it is a common thing.) Consider a high-speed on-chip link from a modem providing audio in (telephony) from the microphone in one endpoint and audio out on another endpoint. We just set that up so we connect a hose from the modem RX to the PCM sink (D/A-codec) and vice versa as long as the phone conversation is on. This gives outstanding power performance since the CPU itself can actually sleep during the enture voicecall, only the DMA engine if awake. We just never got around to modifying the DMAengine framework to support this and integrate it... it is bound to come back to us, especially with things like ever more accelerators on chips that provide such autonomous data streams. (I think.) Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/