|
@@ -263,6 +263,32 @@ struct dma_attrs;
|
|
|
#define dma_unmap_sg_attrs(dev, sgl, nents, dir, attrs) \
|
|
|
dma_unmap_sg(dev, sgl, nents, dir)
|
|
|
|
|
|
+#else
|
|
|
+static inline void *dma_alloc_writecombine(struct device *dev, size_t size,
|
|
|
+ dma_addr_t *dma_addr, gfp_t gfp)
|
|
|
+{
|
|
|
+ DEFINE_DMA_ATTRS(attrs);
|
|
|
+ dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
|
|
|
+ return dma_alloc_attrs(dev, size, dma_addr, gfp, &attrs);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void dma_free_writecombine(struct device *dev, size_t size,
|
|
|
+ void *cpu_addr, dma_addr_t dma_addr)
|
|
|
+{
|
|
|
+ DEFINE_DMA_ATTRS(attrs);
|
|
|
+ dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
|
|
|
+ return dma_free_attrs(dev, size, cpu_addr, dma_addr, &attrs);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int dma_mmap_writecombine(struct device *dev,
|
|
|
+ struct vm_area_struct *vma,
|
|
|
+ void *cpu_addr, dma_addr_t dma_addr,
|
|
|
+ size_t size)
|
|
|
+{
|
|
|
+ DEFINE_DMA_ATTRS(attrs);
|
|
|
+ dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
|
|
|
+ return dma_mmap_attrs(dev, vma, cpu_addr, dma_addr, size, &attrs);
|
|
|
+}
|
|
|
#endif /* CONFIG_HAVE_DMA_ATTRS */
|
|
|
|
|
|
#ifdef CONFIG_NEED_DMA_MAP_STATE
|