[RFC PATCH] iommu: map reserved memory as cacheable if device is coherent
laurentiu.tudor at nxp.com
laurentiu.tudor at nxp.com
Tue Jul 25 07:00:55 PDT 2023
From: Laurentiu Tudor <laurentiu.tudor at nxp.com>
Check if the device is marked as DMA coherent in the DT and if so,
map its reserved memory as cacheable in the IOMMU.
Signed-off-by: Laurentiu Tudor <laurentiu.tudor at nxp.com>
---
drivers/iommu/of_iommu.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 40f57d293a79..ccb912049b88 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -254,6 +254,9 @@ void of_iommu_get_resv_regions(struct device *dev, struct list_head *list)
phys_addr_t iova;
size_t length;
+ if (of_dma_is_coherent(dev->of_node))
+ prot |= IOMMU_CACHE;
+
maps = of_translate_dma_region(np, maps, &iova, &length);
type = iommu_resv_region_get_type(dev, &phys, iova, length);
--
2.17.1
More information about the linux-arm-kernel
mailing list