summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/iommu/tegra-smmu.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index d48296636460..a719ef20b2c6 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -484,6 +484,19 @@ static void flush_ptc_and_tlb(struct smmu_device *smmu,
smmu_flush_tlb(smmu, as, iova, is_pde);
}
+static void flush_ptc_and_tlb_range(struct smmu_device *smmu,
+ struct smmu_as *as, dma_addr_t iova,
+ unsigned long *pte, struct page *page,
+ size_t count)
+{
+ int i;
+
+ for (i = 0; i < count; i++) {
+ smmu_flush_ptc(smmu, pte + i, page);
+ smmu_flush_tlb(smmu, as, iova + i * PAGE_SIZE, 0);
+ }
+}
+
static inline void flush_ptc_and_tlb_all(struct smmu_device *smmu,
struct smmu_as *as)
{