From edbaa4faac0821a9eaab36bead943759c16723dc Mon Sep 17 00:00:00 2001 From: Janghyuck Kim Date: Wed, 28 Feb 2018 16:50:28 +0900 Subject: [PATCH] [COMMON] iommu/exynos: move pm_runtime_enable() in probe Multiple SysMMUs can be the child node of same power domain. In really_probe(), it tries to disable the power domain after calling probe() if pm_runtime_suspend() of child node is true. So calling pm_runtime_enable() before SFR access in sysmmu_probe() would make external abort because it allows to be powered off. Change-Id: I3f46b300afc5ca15300561eb4cf55837f29a50ab Signed-off-by: Janghyuck Kim --- drivers/iommu/exynos-iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index d30fd4eb6b05..0f1c081ebf9c 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -529,8 +529,6 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev) platform_set_drvdata(pdev, data); - pm_runtime_enable(dev); - ret = exynos_iommu_init_event_log(SYSMMU_DRVDATA_TO_LOG(data), SYSMMU_LOG_LEN); if (!ret) @@ -567,6 +565,8 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev) return ret; } + pm_runtime_enable(dev); + dev_info(data->sysmmu, "is probed. Version %d.%d.%d\n", MMU_MAJ_VER(data->version), MMU_MIN_VER(data->version), -- 2.20.1