MIPS: jazz: split dma mapping operations from dma-default
[linux-2.6-block.git] / include / linux / dma-noncoherent.h
CommitLineData
782e6769
CH
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_DMA_NONCOHERENT_H
3#define _LINUX_DMA_NONCOHERENT_H 1
4
5#include <linux/dma-mapping.h>
6
7void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
8 gfp_t gfp, unsigned long attrs);
9void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
10 dma_addr_t dma_addr, unsigned long attrs);
11
12#ifdef CONFIG_DMA_NONCOHERENT_MMAP
13int arch_dma_mmap(struct device *dev, struct vm_area_struct *vma,
14 void *cpu_addr, dma_addr_t dma_addr, size_t size,
15 unsigned long attrs);
16#else
17#define arch_dma_mmap NULL
18#endif /* CONFIG_DMA_NONCOHERENT_MMAP */
19
20#ifdef CONFIG_DMA_NONCOHERENT_CACHE_SYNC
21void arch_dma_cache_sync(struct device *dev, void *vaddr, size_t size,
22 enum dma_data_direction direction);
23#else
24#define arch_dma_cache_sync NULL
25#endif /* CONFIG_DMA_NONCOHERENT_CACHE_SYNC */
26
27#ifdef CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE
28void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
29 size_t size, enum dma_data_direction dir);
30#else
31static inline void arch_sync_dma_for_device(struct device *dev,
32 phys_addr_t paddr, size_t size, enum dma_data_direction dir)
33{
34}
35#endif /* ARCH_HAS_SYNC_DMA_FOR_DEVICE */
36
37#ifdef CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU
38void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
39 size_t size, enum dma_data_direction dir);
40#else
41static inline void arch_sync_dma_for_cpu(struct device *dev,
42 phys_addr_t paddr, size_t size, enum dma_data_direction dir)
43{
44}
45#endif /* ARCH_HAS_SYNC_DMA_FOR_CPU */
46
47#endif /* _LINUX_DMA_NONCOHERENT_H */