diff options
Diffstat (limited to 'arch/powerpc/include/asm/dma-mapping.h')
| -rw-r--r-- | arch/powerpc/include/asm/dma-mapping.h | 24 | 
1 files changed, 16 insertions, 8 deletions
diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h index dd70fac57ec..62678e365ca 100644 --- a/arch/powerpc/include/asm/dma-mapping.h +++ b/arch/powerpc/include/asm/dma-mapping.h @@ -22,9 +22,11 @@  /* Some dma direct funcs must be visible for use in other dma_ops */  extern void *dma_direct_alloc_coherent(struct device *dev, size_t size, -				       dma_addr_t *dma_handle, gfp_t flag); +				       dma_addr_t *dma_handle, gfp_t flag, +				       struct dma_attrs *attrs);  extern void dma_direct_free_coherent(struct device *dev, size_t size, -				     void *vaddr, dma_addr_t dma_handle); +				     void *vaddr, dma_addr_t dma_handle, +				     struct dma_attrs *attrs);  #ifdef CONFIG_NOT_COHERENT_CACHE @@ -130,23 +132,29 @@ static inline int dma_supported(struct device *dev, u64 mask)  extern int dma_set_mask(struct device *dev, u64 dma_mask); -static inline void *dma_alloc_coherent(struct device *dev, size_t size, -				       dma_addr_t *dma_handle, gfp_t flag) +#define dma_alloc_coherent(d,s,h,f)	dma_alloc_attrs(d,s,h,f,NULL) + +static inline void *dma_alloc_attrs(struct device *dev, size_t size, +				    dma_addr_t *dma_handle, gfp_t flag, +				    struct dma_attrs *attrs)  {  	struct dma_map_ops *dma_ops = get_dma_ops(dev);  	void *cpu_addr;  	BUG_ON(!dma_ops); -	cpu_addr = dma_ops->alloc_coherent(dev, size, dma_handle, flag); +	cpu_addr = dma_ops->alloc(dev, size, dma_handle, flag, attrs);  	debug_dma_alloc_coherent(dev, size, *dma_handle, cpu_addr);  	return cpu_addr;  } -static inline void dma_free_coherent(struct device *dev, size_t size, -				     void *cpu_addr, dma_addr_t dma_handle) +#define dma_free_coherent(d,s,c,h) dma_free_attrs(d,s,c,h,NULL) + +static inline void dma_free_attrs(struct device *dev, size_t size, +				  void *cpu_addr, dma_addr_t dma_handle, +				  struct dma_attrs *attrs)  {  	struct dma_map_ops *dma_ops = get_dma_ops(dev); @@ -154,7 +162,7 @@ static inline void dma_free_coherent(struct device *dev, size_t size,  	debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); -	dma_ops->free_coherent(dev, size, cpu_addr, dma_handle); +	dma_ops->free(dev, size, cpu_addr, dma_handle, attrs);  }  static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)  |