1 #ifndef _ASM_GENERIC_DMA_MAPPING_H
2 #define _ASM_GENERIC_DMA_MAPPING_H
4 /* define the dma api to allow compilation but not linking of
5 * dma dependent code. Code that depends on the dma-mapping
6 * API needs to set 'depends on HAS_DMA' in its Kconfig
12 dma_alloc_coherent(struct device
*dev
, size_t size
, dma_addr_t
*dma_handle
,
16 dma_free_coherent(struct device
*dev
, size_t size
, void *cpu_addr
,
17 dma_addr_t dma_handle
);
19 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
20 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
23 dma_map_single(struct device
*dev
, void *ptr
, size_t size
,
24 enum dma_data_direction direction
);
27 dma_unmap_single(struct device
*dev
, dma_addr_t dma_addr
, size_t size
,
28 enum dma_data_direction direction
);
31 dma_map_sg(struct device
*dev
, struct scatterlist
*sg
, int nents
,
32 enum dma_data_direction direction
);
35 dma_unmap_sg(struct device
*dev
, struct scatterlist
*sg
, int nhwentries
,
36 enum dma_data_direction direction
);
39 dma_map_page(struct device
*dev
, struct page
*page
, unsigned long offset
,
40 size_t size
, enum dma_data_direction direction
);
43 dma_unmap_page(struct device
*dev
, dma_addr_t dma_address
, size_t size
,
44 enum dma_data_direction direction
);
47 dma_sync_single_for_cpu(struct device
*dev
, dma_addr_t dma_handle
, size_t size
,
48 enum dma_data_direction direction
);
51 dma_sync_single_range_for_cpu(struct device
*dev
, dma_addr_t dma_handle
,
52 unsigned long offset
, size_t size
,
53 enum dma_data_direction direction
);
56 dma_sync_sg_for_cpu(struct device
*dev
, struct scatterlist
*sg
, int nelems
,
57 enum dma_data_direction direction
);
59 #define dma_sync_single_for_device dma_sync_single_for_cpu
60 #define dma_sync_single_range_for_device dma_sync_single_range_for_cpu
61 #define dma_sync_sg_for_device dma_sync_sg_for_cpu
64 dma_mapping_error(dma_addr_t dma_addr
);
67 dma_supported(struct device
*dev
, u64 mask
);
70 dma_set_mask(struct device
*dev
, u64 mask
);
73 dma_get_cache_alignment(void);
76 dma_is_consistent(struct device
*dev
, dma_addr_t dma_handle
);
79 dma_cache_sync(struct device
*dev
, void *vaddr
, size_t size
,
80 enum dma_data_direction direction
);
82 #endif /* _ASM_GENERIC_DMA_MAPPING_H */