From def4ba9feeec072e329471024c1e01f7908b7516 Mon Sep 17 00:00:00 2001 From: Mitchel Humpherys Date: Mon, 14 Dec 2015 16:12:00 -0800 Subject: [PATCH] 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 --- drivers/iommu/arm-smmu.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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)