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 <linux/mm.h> 17#include <linux/scatterlist.h> 18 19#define DMA_ERROR_CODE (~(dma_addr_t)0x0) 20 21extern struct dma_map_ops xtensa_dma_map_ops; 22 23static inline struct dma_map_ops *get_dma_ops(struct device *dev) 24{ 25 if (dev && dev->archdata.dma_ops) 26 return dev->archdata.dma_ops; 27 else 28 return &xtensa_dma_map_ops; 29} 30 31void dma_cache_sync(struct device *dev, void *vaddr, size_t size, 32 enum dma_data_direction direction); 33 34static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) 35{ 36 return (dma_addr_t)paddr; 37} 38 39static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr) 40{ 41 return (phys_addr_t)daddr; 42} 43 44#endif /* _XTENSA_DMA_MAPPING_H */ 45