When DMA usage is actually needed?

Viewed 30

I know a bit of DMA, but cannot understand when I should use it, let's say, instead of usual allocation mechanisms like kmalloc with specific flags. Also I'm aware of ZONE_DMA which usage means that hardware can map only to that zone, but in linux kernel I can see that somewhere it uses dma_* specific functions and kmalloc respectively, so my questions:

Only some specific hardware can use DMA? It cannot use usual memory allocation mechanisms? When I should use dma_* specific functions and kmalloc with GFP_DMA?

0 Answers
Related