ANDROID: iommu/dma: Add support for DMA_ATTR_SYS_CACHE_ONLY_NWA

IOMMU_SYS_CACHE_ONLY_NWA allows buffers for non-coherent devices
to be mapped with the correct memory attributes so that the buffers
can be cached in the system cache, with a no write allocate cache policy.
However, this property is only usable by drivers that invoke the
IOMMU API directly; it is not usable by drivers that use the DMA API.

Thus, introduce DMA_ATTR_SYS_CACHE_ONLY_NWA, so that drivers for
non-coherent devices that use the DMA API can use it to specify if
they want a buffer to be cached in the system cache.

Bug: 176778547
Change-Id: Ic812a1fb144a58deb4279c2bf121fc6cc4c3b208
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This commit is contained in:
Isaac J. Manjarres
2021-01-04 18:11:10 -08:00
committed by Suren Baghdasaryan
parent 0b653f27bb
commit 7cfc6861b8
3 changed files with 13 additions and 1 deletions

View File

@@ -69,6 +69,15 @@
*/
#define DMA_ATTR_SYS_CACHE_ONLY (1UL << 10)
/*
* DMA_ATTR_SYS_CACHE_ONLY_NWA: used to indicate that the buffer should be
* mapped with the correct memory attributes so that it can be cached in the
* system or last level cache, with a no write allocate cache policy. This is
* useful for buffers that are being mapped for devices that are non-coherent,
* but can use the system cache.
*/
#define DMA_ATTR_SYS_CACHE_ONLY_NWA (1UL << 11)
/*
* A dma_addr_t can hold any valid DMA or bus address for the platform. It can
* be given to a device to use as a DMA source or target. It is specific to a