summaryrefslogtreecommitdiff
path: root/drivers/iommu
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-02-12 17:39:35 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2014-02-12 17:39:35 -0800
commit6b5f829419212afdf3dea13894dae85098dd2be5 (patch)
tree4b01509dbd19a2ea467a4f801a8a765149f0be25 /drivers/iommu
parent1615af02e8b60f1466c279894e83cef65323d136 (diff)
parentb86285d2573e5e0312884567352ead561451466d (diff)
Merge "iommu: msm: Use standard caching APIs"
Diffstat (limited to 'drivers/iommu')
-rw-r--r--drivers/iommu/msm_iommu_sec.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/iommu/msm_iommu_sec.c b/drivers/iommu/msm_iommu_sec.c
index 0c4acaf04d44..d3be32deb9c4 100644
--- a/drivers/iommu/msm_iommu_sec.c
+++ b/drivers/iommu/msm_iommu_sec.c
@@ -28,6 +28,7 @@
#include <linux/kmemleak.h>
#include <soc/qcom/scm.h>
+#include <asm/cacheflush.h>
#include <asm/sizes.h>
#include <mach/iommu_perfmon.h>
@@ -137,8 +138,7 @@ static int msm_iommu_dump_fault_regs(int smmu_id, int cb_num,
ret = scm_call(SCM_SVC_UTIL, IOMMU_DUMP_SMMU_FAULT_REGS,
&req_info, sizeof(req_info), &resp, 1);
- invalidate_caches((unsigned long) regs, sizeof(*regs),
- (unsigned long)virt_to_phys(regs));
+ dmac_inv_range(regs, regs + sizeof(*regs));
return ret;
}
@@ -419,7 +419,7 @@ static int msm_iommu_sec_ptbl_map(struct msm_iommu_drvdata *iommu_drvdata,
/*
* Ensure that the buffer is in RAM by the time it gets to TZ
*/
- clean_caches((unsigned long) flush_va, len, flush_pa);
+ dmac_clean_range(flush_va, flush_va + len);
if (scm_call(SCM_SVC_MP, IOMMU_SECURE_MAP2, &map, sizeof(map), &ret,
sizeof(ret)))
@@ -428,7 +428,7 @@ static int msm_iommu_sec_ptbl_map(struct msm_iommu_drvdata *iommu_drvdata,
return -EINVAL;
/* Invalidate cache since TZ touched this address range */
- invalidate_caches((unsigned long) flush_va, len, flush_pa);
+ dmac_inv_range(flush_va, flush_va + len);
return 0;
}
@@ -506,9 +506,8 @@ static int msm_iommu_sec_ptbl_map_range(struct msm_iommu_drvdata *iommu_drvdata,
/*
* Ensure that the buffer is in RAM by the time it gets to TZ
*/
- clean_caches((unsigned long) flush_va,
- sizeof(unsigned long) * map.plist.list_size,
- virt_to_phys(flush_va));
+ dmac_clean_range(flush_va,
+ flush_va + sizeof(unsigned long) * map.plist.list_size);
ret = scm_call(SCM_SVC_MP, IOMMU_SECURE_MAP2, &map, sizeof(map),
&scm_ret, sizeof(scm_ret));