根据代码,如果dma的设备树里有dma-coherent,Linux则认为硬件会维护cache一致性,不会在dma运行过程中执行cache操作。...Linux会根据direction的值invalidate或者clean cache。...#define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
#define dma_unmap_single(d, a,...s, r) dma_unmap_single_attrs(d, a, s, r, 0)
static inline dma_addr_t dma_map_single_attrs(struct device...如果是,则不进行cache操作。
dev_is_dma_coherent的定义在文件include\linux\dma-noncoherent.h中。