summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchel Humpherys <mitchelh@codeaurora.org>2015-12-14 16:12:00 -0800
committerJeevan Shriram <jshriram@codeaurora.org>2016-05-20 19:23:58 -0700
commitdef4ba9feeec072e329471024c1e01f7908b7516 (patch)
treeb47cd5975ac77188a5676a1e2d06d3c92562dbd8
parentfc72f2237909081f1953b5363d4b7258b14ebce5 (diff)
iommu/arm-smmu: Implement {enable,disable}_config_clocks
Some of our users need to be able to call iommu_{enable,disable}_config_clocks on domains for SMMUs that we control. Implement them. CRs-Fixed: 997751 Change-Id: Idc3692679409093faf8f458d53326e669d7f6479 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
-rw-r--r--drivers/iommu/arm-smmu.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 532611e2ead7..cec4ef4c325d 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -1008,6 +1008,20 @@ static void arm_smmu_tlbi_domain(struct iommu_domain *domain)
arm_smmu_tlb_inv_context(to_smmu_domain(domain));
}
+static int arm_smmu_enable_config_clocks(struct iommu_domain *domain)
+{
+ struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
+
+ return arm_smmu_enable_clocks(smmu_domain->smmu);
+}
+
+static void arm_smmu_disable_config_clocks(struct iommu_domain *domain)
+{
+ struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
+
+ arm_smmu_disable_clocks(smmu_domain->smmu);
+}
+
struct arm_smmu_secure_pool_chunk {
void *addr;
size_t size;
@@ -3109,6 +3123,8 @@ static struct iommu_ops arm_smmu_ops = {
.reg_read = arm_smmu_reg_read,
.reg_write = arm_smmu_reg_write,
.tlbi_domain = arm_smmu_tlbi_domain,
+ .enable_config_clocks = arm_smmu_enable_config_clocks,
+ .disable_config_clocks = arm_smmu_disable_config_clocks,
};
static void arm_smmu_device_reset(struct arm_smmu_device *smmu)