|
@@ -49,3 +49,21 @@ DMA_ATTR_NON_CONSISTENT lets the platform to 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.
|
|
|
+
|
|
|
+DMA_ATTR_NO_KERNEL_MAPPING
|
|
|
+--------------------------
|
|
|
+
|
|
|
+DMA_ATTR_NO_KERNEL_MAPPING lets the platform to avoid creating a kernel
|
|
|
+virtual mapping for the allocated buffer. On some architectures creating
|
|
|
+such mapping is non-trivial task and consumes very limited resources
|
|
|
+(like kernel virtual address space or dma consistent address space).
|
|
|
+Buffers allocated with this attribute can be only passed to user space
|
|
|
+by calling dma_mmap_attrs(). By using this API, you are guaranteeing
|
|
|
+that you won't dereference the pointer returned by dma_alloc_attr(). You
|
|
|
+can threat it as a cookie that must be passed to dma_mmap_attrs() and
|
|
|
+dma_free_attrs(). Make sure that both of these also get this attribute
|
|
|
+set on each call.
|
|
|
+
|
|
|
+Since it is optional for platforms to implement
|
|
|
+DMA_ATTR_NO_KERNEL_MAPPING, those that do not will simply ignore the
|
|
|
+attribute and exhibit default behavior.
|