Loading Documentation/DMA-API.txt +16 −14 Original line number Diff line number Diff line Loading @@ -515,14 +515,15 @@ API at all. :: void * dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag) dma_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag, unsigned long attrs) Identical to dma_alloc_coherent() except that the platform will choose to return either consistent or non-consistent memory as it sees fit. By using this API, you are guaranteeing to the platform that you have all the correct and necessary sync points for this memory in the driver should it choose to return non-consistent memory. Identical to dma_alloc_coherent() except that when the DMA_ATTR_NON_CONSISTENT flags is passed in the attrs argument, the platform will choose to return either consistent or non-consistent memory as it sees fit. By using this API, you are guaranteeing to the platform that you have all the correct and necessary sync points for this memory in the driver should it choose to return non-consistent memory. Note: where the platform can return consistent memory, it will guarantee that the sync points become nops. Loading @@ -535,12 +536,13 @@ that simply cannot make consistent memory. :: void dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle) dma_free_attrs(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle, unsigned long attrs) Free memory allocated by the nonconsistent API. All parameters must be identical to those passed in (and returned by dma_alloc_noncoherent()). Free memory allocated by the dma_alloc_attrs(). All parameters common parameters must identical to those otherwise passed to dma_fre_coherent, and the attrs argument must be identical to the attrs passed to dma_alloc_attrs(). :: Loading @@ -564,8 +566,8 @@ memory or doing partial flushes. dma_cache_sync(struct device *dev, void *vaddr, size_t size, enum dma_data_direction direction) Do a partial sync of memory that was allocated by dma_alloc_noncoherent(), starting at virtual address vaddr and Do a partial sync of memory that was allocated by dma_alloc_attrs() with the DMA_ATTR_NON_CONSISTENT flag starting at virtual address vaddr and continuing on for size. Again, you *must* observe the cache line boundaries when doing this. Loading arch/metag/include/asm/dma-mapping.h +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) } /* * dma_alloc_noncoherent() returns non-cacheable memory, so there's no need to * dma_alloc_attrs() always returns non-cacheable memory, so there's no need to * do any flushing here. */ static inline void Loading arch/nios2/include/asm/dma-mapping.h +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) } /* * dma_alloc_noncoherent() returns non-cacheable memory, so there's no need to * dma_alloc_attrs() always returns non-cacheable memory, so there's no need to * do any flushing here. */ static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, Loading arch/tile/include/asm/dma-mapping.h +2 −2 Original line number Diff line number Diff line Loading @@ -68,8 +68,8 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) int dma_set_mask(struct device *dev, u64 mask); /* * dma_alloc_noncoherent() is #defined to return coherent memory, * so there's no need to do any flushing here. * dma_alloc_attrs() always returns non-cacheable memory, so there's no need to * do any flushing here. */ static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, enum dma_data_direction direction) Loading include/linux/dma-mapping.h +0 −14 Original line number Diff line number Diff line Loading @@ -549,20 +549,6 @@ static inline void dma_free_coherent(struct device *dev, size_t size, return dma_free_attrs(dev, size, cpu_addr, dma_handle, 0); } static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t gfp) { return dma_alloc_attrs(dev, size, dma_handle, gfp, DMA_ATTR_NON_CONSISTENT); } static inline void dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle) { dma_free_attrs(dev, size, cpu_addr, dma_handle, DMA_ATTR_NON_CONSISTENT); } static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) { const struct dma_map_ops *ops = get_dma_ops(dev); Loading Loading
Documentation/DMA-API.txt +16 −14 Original line number Diff line number Diff line Loading @@ -515,14 +515,15 @@ API at all. :: void * dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag) dma_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag, unsigned long attrs) Identical to dma_alloc_coherent() except that the platform will choose to return either consistent or non-consistent memory as it sees fit. By using this API, you are guaranteeing to the platform that you have all the correct and necessary sync points for this memory in the driver should it choose to return non-consistent memory. Identical to dma_alloc_coherent() except that when the DMA_ATTR_NON_CONSISTENT flags is passed in the attrs argument, the platform will choose to return either consistent or non-consistent memory as it sees fit. By using this API, you are guaranteeing to the platform that you have all the correct and necessary sync points for this memory in the driver should it choose to return non-consistent memory. Note: where the platform can return consistent memory, it will guarantee that the sync points become nops. Loading @@ -535,12 +536,13 @@ that simply cannot make consistent memory. :: void dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle) dma_free_attrs(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle, unsigned long attrs) Free memory allocated by the nonconsistent API. All parameters must be identical to those passed in (and returned by dma_alloc_noncoherent()). Free memory allocated by the dma_alloc_attrs(). All parameters common parameters must identical to those otherwise passed to dma_fre_coherent, and the attrs argument must be identical to the attrs passed to dma_alloc_attrs(). :: Loading @@ -564,8 +566,8 @@ memory or doing partial flushes. dma_cache_sync(struct device *dev, void *vaddr, size_t size, enum dma_data_direction direction) Do a partial sync of memory that was allocated by dma_alloc_noncoherent(), starting at virtual address vaddr and Do a partial sync of memory that was allocated by dma_alloc_attrs() with the DMA_ATTR_NON_CONSISTENT flag starting at virtual address vaddr and continuing on for size. Again, you *must* observe the cache line boundaries when doing this. Loading
arch/metag/include/asm/dma-mapping.h +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) } /* * dma_alloc_noncoherent() returns non-cacheable memory, so there's no need to * dma_alloc_attrs() always returns non-cacheable memory, so there's no need to * do any flushing here. */ static inline void Loading
arch/nios2/include/asm/dma-mapping.h +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) } /* * dma_alloc_noncoherent() returns non-cacheable memory, so there's no need to * dma_alloc_attrs() always returns non-cacheable memory, so there's no need to * do any flushing here. */ static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, Loading
arch/tile/include/asm/dma-mapping.h +2 −2 Original line number Diff line number Diff line Loading @@ -68,8 +68,8 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) int dma_set_mask(struct device *dev, u64 mask); /* * dma_alloc_noncoherent() is #defined to return coherent memory, * so there's no need to do any flushing here. * dma_alloc_attrs() always returns non-cacheable memory, so there's no need to * do any flushing here. */ static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, enum dma_data_direction direction) Loading
include/linux/dma-mapping.h +0 −14 Original line number Diff line number Diff line Loading @@ -549,20 +549,6 @@ static inline void dma_free_coherent(struct device *dev, size_t size, return dma_free_attrs(dev, size, cpu_addr, dma_handle, 0); } static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t gfp) { return dma_alloc_attrs(dev, size, dma_handle, gfp, DMA_ATTR_NON_CONSISTENT); } static inline void dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle) { dma_free_attrs(dev, size, cpu_addr, dma_handle, DMA_ATTR_NON_CONSISTENT); } static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) { const struct dma_map_ops *ops = get_dma_ops(dev); Loading