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 23extern struct dma_map_ops xtensa_dma_map_ops; 24 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 35void dma_cache_sync(struct device *dev, void *vaddr, size_t size, 36 enum dma_data_direction direction); 37 38static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) 39{ 40 return (dma_addr_t)paddr; 41} 42 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