iommu/arm-smmu: Don't enable/disable clocks in inv_range_nosync

TLB invalidation is done during unmap with clocks already enabled, but
we still have calls to enable/disable clocks in
arm_smmu_tlb_inv_range_nosync.  Remove the extra calls.

CRs-Fixed: 997751
Change-Id: Ic5f890fda6b4fc8bb2dcd5e6ff49050d5a934c31
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
This commit is contained in:
Mitchel Humpherys 2016-02-23 13:35:08 -08:00 committed by Jeevan Shriram
parent 94c107c426
commit 68c43b6f50

View file

@ -956,6 +956,7 @@ static void arm_smmu_tlb_inv_context(void *cookie)
}
}
/* Must be called with clocks/regulators enabled */
static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size,
bool leaf, void *cookie)
{
@ -970,9 +971,6 @@ static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size,
if (!smmu)
return;
if (arm_smmu_enable_clocks_atomic(smmu))
return;
if (stage1) {
reg = ARM_SMMU_CB_BASE(smmu) + ARM_SMMU_CB(smmu, cfg->cbndx);
reg += leaf ? ARM_SMMU_CB_S1_TLBIVAL : ARM_SMMU_CB_S1_TLBIVA;
@ -999,8 +997,6 @@ static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size,
reg = ARM_SMMU_GR0(smmu) + ARM_SMMU_GR0_TLBIVMID;
writel_relaxed(ARM_SMMU_CB_VMID(cfg), reg);
}
arm_smmu_disable_clocks_atomic(smmu);
}
static void arm_smmu_tlbi_domain(struct iommu_domain *domain)