blob: e81c4e97ff1a28f47ef337069b22518bdce933ca [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_DMA_MAPPING_H
3#define _ASM_DMA_MAPPING_H
4
5#include <linux/swiotlb.h>
6
7extern const struct dma_map_ops jazz_dma_ops;
8
9static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
10{
11#if defined(CONFIG_MACH_JAZZ)
12 return &jazz_dma_ops;
13#elif defined(CONFIG_SWIOTLB)
14 return &swiotlb_dma_ops;
15#elif defined(CONFIG_DMA_NONCOHERENT_OPS)
16 return &dma_noncoherent_ops;
17#else
18 return &dma_direct_ops;
19#endif
20}
21
22#define arch_setup_dma_ops arch_setup_dma_ops
23static inline void arch_setup_dma_ops(struct device *dev, u64 dma_base,
24 u64 size, const struct iommu_ops *iommu,
25 bool coherent)
26{
27#ifdef CONFIG_DMA_PERDEV_COHERENT
28 dev->archdata.dma_coherent = coherent;
29#endif
30}
31
32#endif /* _ASM_DMA_MAPPING_H */