Messages in this thread | | | From | Marek Szyprowski <> | Subject | [PATCH v5 0/7] Exynos IOMMU: proper runtime PM support (use device dependencies) | Date | Thu, 20 Oct 2016 09:22:46 +0200 |
| |
Hello,
This is another update of the patchset for adding proper runtime PM support to Exynos IOMMU driver. This has been achieved by using recently introduced device links, which lets SYSMMU controller's runtime PM to follow master's device runtime PM state (the device which actually performs DMA transaction). The main idea behind this solution is an observation that any DMA activity from master device can be done only when master device is active, thus when master device is suspended SYSMMU controller device can also be suspended.
This patchset solves the problem of all power domains being always enabled. It happened, because all SYSMMU controllers (which belongs to the same domains) are permanently kept active, because existing driver was simplified and kept SYSMMU device active all the time after initialization and attaching to the master device.
Patch requires fifth version of Rafeal's "Functional dependencies between devices" patchset, which is available here: http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1246897.html or as git branch: git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git device-links-test
If one wants to test this patchset, I've provided a branch with all needed patches (a small fix for Exynos4 FIMC-IS DTS is still needed): https://git.linaro.org/people/marek.szyprowski/linux-srpol.git v4.9-iommu-pm-v5
Patches are based on vanilla v4.9-rc1 kernel with Rafael's device dependencies v5 patchset applied.
Best regards Marek Szyprowski Samsung R&D Institute Poland
Changelog: v5: - split main patch into several small changes for easier review (requested by Luis Rodriquez) - fixed usage of runtime_pm_active, now it is guarded by pm_runtime_get_noresume() and pm_runtime_put() pair
v4: http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1241601.html - rebased on top of v4 of device dependencies/links patchset, what resolved system hang on reboot
v3: http://www.spinics.net/lists/linux-samsung-soc/msg55256.html - rebased on top of latest device dependencies/links patchset - added proper locking between runtime pm, iommu_attach/detach and sysmmu enable/disable(added per iommu owner device's rpm lock)
v2: http://www.spinics.net/lists/arm-kernel/msg512082.html - replaced PM notifiers with generic device dependencies/links developed by Rafael J. Wysocki
v1: http://www.spinics.net/lists/arm-kernel/msg509600.html - initial version
Patch summary:
Marek Szyprowski (7): iommu/exynos: Remove excessive, useless debug iommu/exynos: Remove dead code iommu/exynos: Simplify internal enable/disable functions iommu/exynos: Set master device once on boot iommu/exynos: Rework and fix internal locking iommu/exynos: Add runtime pm support iommu/exynos: Use device dependency links to control runtime pm
drivers/iommu/exynos-iommu.c | 230 ++++++++++++++++++------------------------- 1 file changed, 95 insertions(+), 135 deletions(-)
-- 1.9.1
| |