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) 2003 - 2005 Tensilica Inc. 7 * Copyright (C) 2015 Cadence Design Systems Inc. 8 */ 9 10 #ifndef _XTENSA_DMA_MAPPING_H 11 #define _XTENSA_DMA_MAPPING_H 12 13 #include <asm/cache.h> 14 #include <asm/io.h> 15 16 #include <asm-generic/dma-coherent.h> 17 18 #include <linux/mm.h> 19 #include <linux/scatterlist.h> 20 21 #define DMA_ERROR_CODE (~(dma_addr_t)0x0) 22 23 extern struct dma_map_ops xtensa_dma_map_ops; 24 get_dma_ops(struct device * dev)25static inline struct dma_map_ops *get_dma_ops(struct device *dev) 26 { 27 if (dev && dev->archdata.dma_ops) 28 return dev->archdata.dma_ops; 29 else 30 return &xtensa_dma_map_ops; 31 } 32 33 #include <asm-generic/dma-mapping-common.h> 34 35 void dma_cache_sync(struct device *dev, void *vaddr, size_t size, 36 enum dma_data_direction direction); 37 phys_to_dma(struct device * dev,phys_addr_t paddr)38static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) 39 { 40 return (dma_addr_t)paddr; 41 } 42 dma_to_phys(struct device * dev,dma_addr_t daddr)43static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr) 44 { 45 return (phys_addr_t)daddr; 46 } 47 48 #endif /* _XTENSA_DMA_MAPPING_H */ 49