1/* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 2006 Ralf Baechle <ralf@linux-mips.org> 7 * 8 * 9 * Similar to mach-generic/dma-coherence.h except 10 * plat_device_is_coherent hard coded to return 1. 11 * 12 */ 13#ifndef __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H 14#define __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H 15 16struct device; 17 18dma_addr_t octeon_map_dma_mem(struct device *, void *, size_t); 19void octeon_unmap_dma_mem(struct device *, dma_addr_t); 20 21static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, 22 size_t size) 23{ 24 return octeon_map_dma_mem(dev, addr, size); 25} 26 27static inline dma_addr_t plat_map_dma_mem_page(struct device *dev, 28 struct page *page) 29{ 30 return octeon_map_dma_mem(dev, page_address(page), PAGE_SIZE); 31} 32 33static inline unsigned long plat_dma_addr_to_phys(struct device *dev, 34 dma_addr_t dma_addr) 35{ 36 return dma_addr; 37} 38 39static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr, 40 size_t size, enum dma_data_direction direction) 41{ 42 octeon_unmap_dma_mem(dev, dma_addr); 43} 44 45static inline int plat_dma_supported(struct device *dev, u64 mask) 46{ 47 return 1; 48} 49 50static inline void plat_extra_sync_for_device(struct device *dev) 51{ 52 mb(); 53} 54 55static inline int plat_device_is_coherent(struct device *dev) 56{ 57 return 1; 58} 59 60static inline int plat_dma_mapping_error(struct device *dev, 61 dma_addr_t dma_addr) 62{ 63 return dma_addr == -1; 64} 65 66#endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */ 67