Commit 87f8e57327bd8d85fb5b46cad29ac281430cc50d

Authored by Omar Ramirez Luna
Committed by Joerg Roedel
1 parent a33977206c

iommu/omap: Keep mmu enabled when requested

The purpose of the mmu is to handle the memory accesses requested by
its users. Typically, the mmu is bundled with the processing unit in
a single IP block, which makes them to share the same clock to be
functional.

Currently, iommu code assumes that its user will be indirectly
clocking it, but being a separate mmu driver, it should handle
its own clocks, so as long as the mmu is requested it will be
powered ON and once detached it will be powered OFF.

The remaining clock handling out of iommu_enable and iommu_disable
corresponds to paths that can be accessed through debugfs, some of
them doesn't work if the module is not enabled first, but in future
if the mmu is idled withouth freeing, these are needed to debug.

Signed-off-by: Omar Ramirez Luna <omar.luna@linaro.org>
Tested-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>

Showing 1 changed file with 0 additions and 3 deletions Side-by-side Diff

drivers/iommu/omap-iommu.c
... ... @@ -154,7 +154,6 @@
154 154  
155 155 err = arch_iommu->enable(obj);
156 156  
157   - clk_disable(obj->clk);
158 157 return err;
159 158 }
160 159  
... ... @@ -162,8 +161,6 @@
162 161 {
163 162 if (!obj)
164 163 return;
165   -
166   - clk_enable(obj->clk);
167 164  
168 165 arch_iommu->disable(obj);
169 166