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

Commit 4592b26e authored by Mitchel Humpherys's avatar Mitchel Humpherys
Browse files

iommu/arm-smmu: Implement the .tlbi_domain op



The upcoming "fast" DMA mapper will need to take control of TLB
invalidation.  Doing so allows us to perform fewer TLB invalidation
operations since the DMA mapper layer has more knowledge about when
"stale" TLB entries might actually become a problem, so it can do TLB
invalidation much less frequently.  Implement the tlbi_domain op for
this purpose.

CRs-Fixed: 997751
Change-Id: Iba9f499dba89db91c1150947b9599d85ade65b0e
Signed-off-by: default avatarMitchel Humpherys <mitchelh@codeaurora.org>
parent 61d711a6
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1016,6 +1016,11 @@ static void arm_smmu_flush_pgtable(void *addr, size_t size, void *cookie)
	}
}

static void arm_smmu_tlbi_domain(struct iommu_domain *domain)
{
	arm_smmu_tlb_inv_context(domain->priv);
}

struct arm_smmu_secure_pool_chunk {
	void *addr;
	size_t size;
@@ -3079,6 +3084,7 @@ static struct iommu_ops arm_smmu_ops = {
	.trigger_fault		= arm_smmu_trigger_fault,
	.reg_read		= arm_smmu_reg_read,
	.reg_write		= arm_smmu_reg_write,
	.tlbi_domain		= arm_smmu_tlbi_domain,
};

static void arm_smmu_device_reset(struct arm_smmu_device *smmu)