diff options
author | Mitchel Humpherys <mitchelh@codeaurora.org> | 2016-02-23 13:35:08 -0800 |
---|---|---|
committer | Jeevan Shriram <jshriram@codeaurora.org> | 2016-05-20 19:24:05 -0700 |
commit | 68c43b6f50df78cb7ef1e24ecfc258ba0c480ff9 (patch) | |
tree | 981295ead9ad67cbd6d916b772d2fda4e4b293eb /drivers/iommu/arm-smmu.c | |
parent | 94c107c426ffc5d0db9230664ca6028dda2e521e (diff) |
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>
Diffstat (limited to 'drivers/iommu/arm-smmu.c')
-rw-r--r-- | drivers/iommu/arm-smmu.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index f38eb8e1614c..ce3f8713df3e 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -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) |