What's the DMA direction for memory-to-memory transfer?

Viewed 20

It seems that the dma_data_direction enum is defined for transfer between device and memory:

enum dma_data_direction {
    DMA_BIDIRECTIONAL = 0,
    DMA_TO_DEVICE = 1,
    DMA_FROM_DEVICE = 2,
    DMA_NONE = 3,
};

Why there is not a direction definition for memory-to-memory (or device-to-device) DMA transfer?

1 Answers

Memory-to-memory DMA transfer mean you "READ" from memory and "WRITE" to memory. In this case the dma_data_direction is DMA_BIDIRECTIONAL. For other value:

  • DMA_TO_DEVICE : mean from memory to device
  • DMA_FROM_DEVICE : mean from device to memory
Related