dma: dma_{un}map_{single|sg}_attrs() interface
v2 cover dma: dma_{un}map_{single|sg}_attrs() interface
Introduce a new interface for passing architecture-specific attributes when memory is mapped and unmapped for DMA. Give the interface a default implementation which ignores attributes.
Signed-off-by Arthur Kepner <[email protected]>
---
dma-mapping.h | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+)
include/linux/dma-mapping.h +35 -0
@@ -116,4 +116,39 @@ static inline void dmam_release_declared_memory(struct device *dev) }#endif /* ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY */ +#ifndef ARCH_USES_DMA_ATTRS +struct dma_attrs ; + +static inline dma_addr_t dma_map_single_attrs (struct device *dev, +void *cpu_addr,size_t size, +enum dma_data_direction dir, +struct dma_attrs * attrs) +{ +return dma_map_single (dev, cpu_addr, size, dir); +} + +static inline void dma_unmap_single_attrs (struct device *dev, +dma_addr_t dma_addr,size_t size, +enum dma_data_direction dir, +struct dma_attrs * attrs) +{ +return dma_unmap_single (dev, dma_addr, size, dir); +} + +static inline int dma_map_sg_attrs (struct device *dev,struct scatterlist *sgl, +int nents,enum dma_data_direction dir, +struct dma_attrs *attrs) +{ +return dma_map_sg (dev, sgl, nents, dir); +} + +static inline void dma_unmap_sg_attrs (struct device *dev, +struct scatterlist *sgl,int nents, +enum dma_data_direction dir, +struct dma_attrs *attrs) +{ +return dma_unmap_sg (dev, sgl, nents, dir); +} +#endif /* ARCH_USES_DMA_ATTRS */ +#endif