diff options
| author | Mitchel Humpherys <mitchelh@codeaurora.org> | 2015-12-14 16:12:00 -0800 |
|---|---|---|
| committer | Jeevan Shriram <jshriram@codeaurora.org> | 2016-05-20 19:23:58 -0700 |
| commit | def4ba9feeec072e329471024c1e01f7908b7516 (patch) | |
| tree | b47cd5975ac77188a5676a1e2d06d3c92562dbd8 | |
| parent | fc72f2237909081f1953b5363d4b7258b14ebce5 (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.c | 16 |
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) |
