Hello,
On 2015-05-10 15:38, Cho KyongHo wrote:
On Mon, 04 May 2015 10:16:07 +0200 Marek Szyprowski m.szyprowski@samsung.com wrote:
This patch fixes support for runtime power management for SYSMMU controllers, so they are enabled when master device is attached.
You should later think that this style of runtime PM support will increase the leakage current because some devices may enable System MMUs during they are not working. If a device driver of a master device attaches its iommu domain in probe, its local power will be never gated.
Yes, true, but let's merge something that WORKS first and add more fine-grained runtime-pm later as a separate patch. Some time ago I've posted a fully-blown patchset for Exynos IOMMU will all features (https://lkml.org/lkml/2014/8/5/183) - but it turned out that it will be to hard to agree on all needed features and dependencies, so I simplified the code as much as possible. All remaining features (like fine-grained power management and access for more than one iommu controller per device) will be posted separately.
Signed-off-by: Marek Szyprowski m.szyprowski@samsung.com
drivers/iommu/exynos-iommu.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index 598660c87410..734107ec78fa 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -702,6 +702,7 @@ static int exynos_iommu_attach_device(struct iommu_domain *domain, return -ENODEV; list_for_each_entry(data, &owner->clients, owner_node) {
ret = __sysmmu_enable(data, pagetable, domain); if (ret >= 0) { data->master = dev;pm_runtime_get_sync(data->sysmmu);
@@ -743,6 +744,7 @@ static void exynos_iommu_detach_device(struct iommu_domain *domain, data->master = NULL; list_del_init(&data->domain_node); }
} }pm_runtime_put(data->sysmmu); found = true;
-- 1.9.2
Best regards