1#ifndef ___ASM_SPARC_DMA_MAPPING_H 2#define ___ASM_SPARC_DMA_MAPPING_H 3 4#include <linux/scatterlist.h> 5#include <linux/mm.h> 6#include <linux/dma-debug.h> 7 8#define DMA_ERROR_CODE (~(dma_addr_t)0x0) 9 10#define HAVE_ARCH_DMA_SUPPORTED 1 11int dma_supported(struct device *dev, u64 mask); 12 13static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, 14 enum dma_data_direction dir) 15{ 16 /* Since dma_{alloc,free}_noncoherent() allocated coherent memory, this 17 * routine can be a nop. 18 */ 19} 20 21extern struct dma_map_ops *dma_ops; 22extern struct dma_map_ops *leon_dma_ops; 23extern struct dma_map_ops pci32_dma_ops; 24 25extern struct bus_type pci_bus_type; 26 27static inline struct dma_map_ops *get_dma_ops(struct device *dev) 28{ 29#ifdef CONFIG_SPARC_LEON 30 if (sparc_cpu_model == sparc_leon) 31 return leon_dma_ops; 32#endif 33#if defined(CONFIG_SPARC32) && defined(CONFIG_PCI) 34 if (dev->bus == &pci_bus_type) 35 return &pci32_dma_ops; 36#endif 37 return dma_ops; 38} 39 40#endif 41