Commit 01324ab2 authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Joerg Roedel

iommu/exynos: Fix master clock management for inactive SYSMMU

If SYSMMU controller is not active, there is no point in enabling master's
clock just for doing the the of internal state. This patch moves enabling
that clock to the block which actually does the register access.
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 0c2b063f
...@@ -524,16 +524,15 @@ static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data, ...@@ -524,16 +524,15 @@ static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data,
{ {
unsigned long flags; unsigned long flags;
clk_enable(data->clk_master);
spin_lock_irqsave(&data->lock, flags); spin_lock_irqsave(&data->lock, flags);
if (is_sysmmu_active(data)) { if (is_sysmmu_active(data) && data->version >= MAKE_MMU_VER(3, 3)) {
if (data->version >= MAKE_MMU_VER(3, 3)) clk_enable(data->clk_master);
__sysmmu_tlb_invalidate_entry(data, iova, 1); __sysmmu_tlb_invalidate_entry(data, iova, 1);
clk_disable(data->clk_master);
} }
spin_unlock_irqrestore(&data->lock, flags); spin_unlock_irqrestore(&data->lock, flags);
clk_disable(data->clk_master);
} }
static void sysmmu_tlb_invalidate_entry(struct sysmmu_drvdata *data, static void sysmmu_tlb_invalidate_entry(struct sysmmu_drvdata *data,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment