Use when writing or reviewing DMA code — dma_alloc_coherent vs streaming mappings, dma_map_single/sg, dma_sync_single_for_cpu/device, DMA direction, cache-coherent vs non-coherent devices, bounce buffers, and stale-data bugs. Teaches the Linux DMA-API contract and the cache-coherency rules that keep device and CPU views consistent.