From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933530AbcJTHX5 (ORCPT ); Thu, 20 Oct 2016 03:23:57 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:23946 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755751AbcJTHXo (ORCPT ); Thu, 20 Oct 2016 03:23:44 -0400 X-AuditID: cbfec7f2-f79556d000002c42-c8-580870fcf8db From: Marek Szyprowski To: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , Joerg Roedel , Inki Dae , Kukjin Kim , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , "Rafael J. Wysocki" , Mark Brown , "Luis R. Rodriguez" , Greg Kroah-Hartman , Tomeu Vizoso , Lukas Wunner , Kevin Hilman , Tobias Jakobi , Tomasz Figa Subject: [PATCH v5 0/7] Exynos IOMMU: proper runtime PM support (use device dependencies) Date: Thu, 20 Oct 2016 09:22:46 +0200 Message-id: <1476948173-21093-1-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAAzWSe0hTURzHO7t3d9fl4jYlD1oGw6IUXxhxSDOjiEv2R/6TYpitvPhoU9tU Ulj4nLpwE00yNVumrpa2UjMnovnAB75SKwyz8EU+Mk3Xw7CZ7up/nw+/7/meH4dDYsICrj0Z GR3HyKLFEhHBx+s71wZc12PJII/mYhF6WWjgooKJaQKlPTYQKO9LLo60Ld4ou/gFD2mmFjA0 UzvFQYODmzrSWEKg1ZwOgAoHmzlo9qsDqu4Y56HR3BmA+nqHuUj5bJmL9I3rAKmrhwk/G3q6 tZRDN4yXA9pYNM6ja/TZBN3yoIpH54/qAG3u5NF17zNxWl2nB/RqjSNdmFnPvbg7mO8Txkgi ExiZu+9VfoRGp+bEjtndMv1Lx5PBHxsVsCIhdQzOzeq4LO+Dbz8bCBXgk0KqAsChqnIuK6sA jo0u8XZO9C9nYOygEsC5slSclWQO/G2ewLZSBOUJVYsqS5ctlQKgKaucsyUYNYlDZUoZ2ErZ UJdho7Lawjh1CJoqzBYWUDRcWGkl2PscYU9nvmURSH3gQU3pwGYTuSkHYM0bjM2chZ/Uv7b3 s4HzXXXbvB+O5N/BWdYAmJrhwnIhgAOLApa9YXvXkOUFMGoPzKu/h7H1ApilFLIRGpYYn3NY Pg1HWr5Z6oVUCNRP6kAucNCCXXpgy8TLpeGM3MtNLpbK46PD3a7HSGvA5mfpNXetNICf3Sfa AEUCkbUgYoAXJOSKE+SJ0jYASUxkK+iUkEFCQZg4MYmRxYTK4iWMvA04kLjITtCkfRcopMLF ccwNhollZDtTDmllnwz2Zj910t79q7iiuNBMp50zM74xB1FsurVXu4cpm3H9fjR6TVH52ugT cBh/5W/0fHIEaCbPu4f2RJCqUyHXopyTDY8eqkz+ReTHHq3bhlV7d39UU4my1KlvPslP0CZx X6oqUuT8CHY57tp96WRtic/iTWHAff8Nw3TBmYTbMzmBIlweIfZ0xmRy8X+UAqiwKAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRmVeSWpSXmKPExsVy+t/xK7rnCjgiDN6tF7bYOGM9q8XUh0/Y LJoXr2ezmHR/AovFgv3WFp2zN7Bb9D9+zWzxdPNjJovz54Hcy7vmsFl87j3CaDHj/D4mixfP pS3WHrnLbnFjwlNGizOnL7FatK3+wGqxatcfRou+tZfYHIQ9nhycx+Sx4+4SRo+ds+6ye2xa 1cnmsX/uGnaPyTeWM3r8O8buseVqO4tH35ZVjB6fN8l5zGjfxhrAHeVmk5GamJJapJCal5yf kpmXbqsUGuKma6GkkJeYm2qrFKHrGxKkpFCWmFMK5BkZoAEH5wD3YCV9uwS3jP7lfUwFt8Ur vvxtYWlg/CHcxcjJISFgInH2QyszhC0mceHeerYuRi4OIYEljBIr256wQDhNTBIPD7cxglSx CRhKdL3tAqsSEWhklNi2dSI7iMMs8IxFYsGPbWwgVcIC0RK72taCdbAIqEp8WfoPzOYV8JB4 /ekgG8Q+OYmTxyazTmDkXsDIsIpRJLW0ODc9t9hIrzgxt7g0L10vOT93EyMwnrYd+7llB2PX u+BDjAIcjEo8vBnn2COEWBPLiitzDzFKcDArifAey+GIEOJNSaysSi3Kjy8qzUktPsRoCrR8 IrOUaHI+MNbzSuINTQzNLQ2NjC0szI2MlMR5p364Ei4kkJ5YkpqdmlqQWgTTx8TBKdXAuIZr +6KTgrN6vD4lHjgTHyr24sLU7imdUo/YQ+NFlvB1lL7yVvT4Enjq4nsPNalWywqrkukLrOxY M9WXMFwv3aCwwtm/oWfFpPV33x1fa1zyYcald2suT/p9eu/bB1q9LV3685jyuFQVjCZaHZ+3 zCNj3zrnqUrKiT0OOS39G5f5bPdbdOf+RSWW4oxEQy3mouJEADrrhpy9AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161020072330eucas1p2b09ad8d091171edbac9449815fdc0fb7 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20161020072330eucas1p2b09ad8d091171edbac9449815fdc0fb7 X-RootMTR: 20161020072330eucas1p2b09ad8d091171edbac9449815fdc0fb7 References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 From mboxrd@z Thu Jan 1 00:00:00 1970 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 Message-ID: <1476948173-21093-1-git-send-email-m.szyprowski@samsung.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Tomeu Vizoso , Bartlomiej Zolnierkiewicz , Greg Kroah-Hartman , Kevin Hilman , "Rafael J. Wysocki" , Tomasz Figa , Krzysztof Kozlowski , Inki Dae , Tobias Jakobi , "Luis R. Rodriguez" , Kukjin Kim , Mark Brown , Lukas Wunner List-Id: linux-pm@vger.kernel.org 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-u79uwXL29TY76Z2rM5mHXA@public.gmane.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-u79uwXL29TY76Z2rM5mHXA@public.gmane.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