Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e89aa76 authored by Liam Mark's avatar Liam Mark Committed by Gerrit - the friendly Code Review server
Browse files

common: DMA-mapping: add per-buffer coherent mappings attributes



The DMA_ATTR_FORCE_COHERENT DMA attribute can be used to force a buffer
to be mapped as IO coherent.

The DMA_ATTR_FORCE_NON_COHERENT DMA attribute can be used to force a
buffer to not be mapped as IO coherent.

Change-Id: Id80d77a5ccd797eec36b45b320423fb46c9f5861
Signed-off-by: default avatarLiam Mark <lmark@codeaurora.org>
parent cca05311
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -126,3 +126,22 @@ DMA_ATTR_EXEC_MAPPING
By default, the DMA mappings are non-executable. Some use cases might require
an executable mapping. This attribute can be used to indicate to the DMA
subsystem to create an executable mappings for the buffer.

DMA_ATTR_FORCE_COHERENT
-----------------------

When passed to a DMA map call the DMA_ATTR_FORCE_COHERENT DMA
attribute can be used to force a buffer to be mapped as IO coherent.
This DMA attribute is only currently supported for arm64 stage 1 IOMMU
mappings.

DMA_ATTR_FORCE_NON_COHERENT
---------------------------
When passed to a DMA map call the DMA_ATTR_FORCE_NON_COHERENT DMA
attribute can be used to force a buffer to not be mapped as IO
coherent.
The DMA_ATTR_FORCE_NON_COHERENT DMA attribute overrides the buffer IO
coherency configuration set by making the device IO coherent.

This DMA attribute is only currently supported for arm64 stage 1 IOMMU
mappings.
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ enum dma_attr {
	DMA_ATTR_SKIP_ZEROING,
	DMA_ATTR_NO_DELAYED_UNMAP,
	DMA_ATTR_EXEC_MAPPING,
	DMA_ATTR_FORCE_COHERENT,
	DMA_ATTR_FORCE_NON_COHERENT,
	DMA_ATTR_MAX,
};