From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932754AbdCWIFa (ORCPT ); Thu, 23 Mar 2017 04:05:30 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:42004 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753698AbdCWIDz (ORCPT ); Thu, 23 Mar 2017 04:03:55 -0400 X-AuditID: cbfec7f4-f79716d000006f65-4a-58d381668013 From: Marek Szyprowski To: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Marek Szyprowski , Sylwester Nawrocki , Krzysztof Kozlowski , Linus Walleij , Tomasz Figa , Lee Jones , Bartlomiej Zolnierkiewicz , Chanwoo Choi Subject: [PATCH v4 6/6] mfd: exynos-lpass: Add runtime PM support Date: Thu, 23 Mar 2017 09:03:27 +0100 Message-id: <1490256207-10061-7-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1490256207-10061-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWRX0hTcRTH/d1/uxvOLtPqh9rQgQ8uMoWFl7Ro4cN6kSCyUQ818k6lTW1T S8H8U6ktmpaVIppKZjAU5zRRUdPNbdkfly2dZsvAzHLuQaaEaZrz1tvncD58D+ccEhV8w0LJ jMwcRpOpUIkIHtZjWx8/pCxxymMbVsR0Z20HTrtWF3Ha4TBy6Lk1K6Afbj5HaNP8FE53NW4C 2tlfT9C1jiGEbh91c2jLcjlOG/o3wYlAWV+dmyMzGe4Qss9TA4Ssq6VIpu82AJnPJDxNnOcl pjKqjDxGc/j4JV66zyzJdlHX182DoBg0B+kASUJKAofvJesAdwf3wfdfOggd4JEC6hmAv3Ve 4G8IKB+A2/OFrCSBxmonykqtAM6OVKKsVIzAGYPKzwQVB3Ve3W5SCFUOoFtfgfgLlJpG4K25 R4TfCqaksN1n2WWMioIu6wDiZz4lg/3bHg47TgjHbNW4n7nUKTjZNoL5gyD1hAPffmrhsDsc gKZhlPWT4HRpCcFyMFyyd//LCYfO6rsYy5UAlt4+yHItgONePssJ0GKf2J2FUkHwQU8Nysbz YUWZgFVk0Nq+DliWQuNGJ8Zeoh7APyvNeBUIbwIBBhDC5GrVaYxWEqNVqLW5mWkxl7PUJrDz +zdb9tVe8NR21AwoEogC+cYbH+QCXJGnzVebASRRUQj/2FWnXMBPVeQXMJqsi5pcFaM1gzAS E+3nDzR9PCeg0hQ5zBWGyWY0/7sIyQ0tBvzBxoTordf3W8aI7bNlrgL3WEqNcPRI3s2qaOvC UkB9VEN63aRzreTkmcIZb8zLn7rZx/qINuWsMnnB8+qrdEgXf2HO444d1y/apC/kz1q5PxY9 e8Xver+LHEU5o5blqniheOnanoWhtonIlL4wQaIyItL5C9nAa+zypCSEFGHadEWcGNVoFX8B iHVKmfcCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplkeLIzCtJLcpLzFFi42I5/e/4Fd3SxssRBodfqFpsnLGe1eL6l+es FufPb2C3uP/1KKPFlD/LmSw2Pb7GarF5/h9Gi8u75rBZzDi/j8li7ZG77BaH37SzWqza9YfR gcdj56y77B6bVnWyedy5tofNY/OSeo++LasYPT5vkgtgi3KzyUhNTEktUkjNS85PycxLt1UK DXHTtVBSyEvMTbVVitD1DQlSUihLzCkF8owM0ICDc4B7sJK+XYJbxudDJgXXBSp+HtrL2MC4 kK+LkZNDQsBEYsPky8wQtpjEhXvr2UBsIYEljBIr/rp2MXIB2U1MEguunmcBSbAJGEp0ve1i A0mICLQzSry+fY0JJMEscIdJYsPLFBBbWMBRYu3nw2CTWARUJa4f3QNWwyvgIbHr/2t2iG1y EiePTWYFsTkFPCWurjnIArHZQ2LDnU/sExh5FzAyrGIUSS0tzk3PLTbSK07MLS7NS9dLzs/d xAiMgm3Hfm7Zwdj1LvgQowAHoxIP74a6SxFCrIllxZW5hxglOJiVRHhtCy9HCPGmJFZWpRbl xxeV5qQWH2I0BTpqIrOUaHI+MELzSuINTQzNLQ2NjC0szI2MlMR5p364Ei4kkJ5YkpqdmlqQ WgTTx8TBKdXAqMp0dCrLOVF/s9Zc/Yg39R4h2teDNuQe3Pr72ERNrZ2b3jSmC2/ibO7ka4hr ydwWyhv62On+tFf+NSG5j1tcH/2uEq5o0rucM9WYY8/azaJbJpWonmNqCLpT2VGn2BGVqPd3 3i3vm8+ObX269WvgD4OKxMsMk3f9UW98y3/U0/bG41lm2twVSizFGYmGWsxFxYkAkZF1Z5gC AAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170323080350eucas1p273814a2f183f04f180f8f2a2a362b86e 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: 20170323080350eucas1p273814a2f183f04f180f8f2a2a362b86e X-RootMTR: 20170323080350eucas1p273814a2f183f04f180f8f2a2a362b86e References: <1490256207-10061-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Convert exisitng lpass-suspend/resume callbacks into runtime PM callbacks. This way Exynos LPASS driver will be ready for use with power domains enabled. LPASS will be runtime resumed/suspended as a result of its child devices runtime PM transitions. Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Acked-by: Sylwester Nawrocki Acked-for-MFD-by: Lee Jones --- drivers/mfd/exynos-lpass.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/mfd/exynos-lpass.c b/drivers/mfd/exynos-lpass.c index 9dbbedad916f..6d735e22acda 100644 --- a/drivers/mfd/exynos-lpass.c +++ b/drivers/mfd/exynos-lpass.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -132,6 +133,8 @@ static int exynos_lpass_probe(struct platform_device *pdev) } platform_set_drvdata(pdev, lpass); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); exynos_lpass_enable(lpass); return of_platform_populate(dev->of_node, NULL, NULL, dev); @@ -141,7 +144,9 @@ static int exynos_lpass_remove(struct platform_device *pdev) { struct exynos_lpass *lpass = platform_get_drvdata(pdev); - exynos_lpass_disable(lpass); + pm_runtime_disable(&pdev->dev); + if (!pm_runtime_status_suspended(&pdev->dev)) + exynos_lpass_disable(lpass); regmap_exit(lpass->top); return 0; @@ -165,8 +170,11 @@ static int __maybe_unused exynos_lpass_resume(struct device *dev) return 0; } -static SIMPLE_DEV_PM_OPS(lpass_pm_ops, exynos_lpass_suspend, - exynos_lpass_resume); +static const struct dev_pm_ops lpass_pm_ops = { + SET_RUNTIME_PM_OPS(exynos_lpass_suspend, exynos_lpass_resume, NULL) + SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) +}; static const struct of_device_id exynos_lpass_of_match[] = { { .compatible = "samsung,exynos5433-lpass" }, -- 1.9.1