On Thu, Apr 25, 2013 at 02:43:16PM +0200, Linus Walleij wrote: > So while there is no active usecase, Linux surely has the ambition to do > that as can be seen in: > > /** > * enum dma_transfer_direction - dma transfer mode and direction indicator > * @DMA_MEM_TO_MEM: Async/Memcpy mode > * @DMA_MEM_TO_DEV: Slave mode & From Memory to Device > * @DMA_DEV_TO_MEM: Slave mode & From Device to Memory > * @DMA_DEV_TO_DEV: Slave mode & From Device to Device > */ > enum dma_transfer_direction { > DMA_MEM_TO_MEM, > DMA_MEM_TO_DEV, > DMA_DEV_TO_MEM, > DMA_DEV_TO_DEV, > DMA_TRANS_NONE, > }; > > I think we need a handshake with Vinod on this.
DEV_TO_DEV was added when the change to dma_transfer_direction happened, to "fill in" the full pattern. There's a problem with device to device transfers though - you have to consider the rate at which the devices produce and consume data, and whether they both can cope with differing data rates. Take for instance your audio in to audio out idea - even if they are both operating at the same bits per sample and sample rate, if they are independently clocked, chances are that the clocks are not exactly the same, which means you will either underrun or overrun one of the FIFOs in the system. -- 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/