void dma_cache_sync(struct device *dev, void *vaddr, size_t size, enum dma_data_direction direction) { BUG_ON(direction == DMA_NONE); plat_extra_sync_for_device(dev); if (!plat_device_is_coherent(dev)) __dma_sync((unsigned long)vaddr, size, direction); }
static void mips_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) { plat_extra_sync_for_device(dev); if (!plat_device_is_coherent(dev)) { unsigned long addr; addr = dma_addr_to_virt(dev, dma_handle); __dma_sync(addr, size, direction); } }
void dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) { BUG_ON(direction == DMA_NONE); plat_extra_sync_for_device(dev); if (!plat_device_is_coherent(dev)) { unsigned long addr; addr = dma_addr_to_virt(dev, dma_handle); __dma_sync(addr + offset, size, direction); } }