From patchwork Thu Mar 23 08:03:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 95895 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp625194qgd; Thu, 23 Mar 2017 01:05:34 -0700 (PDT) X-Received: by 10.98.252.211 with SMTP id e202mr1481387pfh.118.1490256334751; Thu, 23 Mar 2017 01:05:34 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t9si3319107pfa.157.2017.03.23.01.05.34; Thu, 23 Mar 2017 01:05:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932754AbdCWIFa (ORCPT + 12 others); 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 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0ON9008IAD2F2950@mailout1.w1.samsung.com>; Thu, 23 Mar 2017 08:03:51 +0000 (GMT) Received: from eusmges4.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170323080350eucas1p115e755c3de804a146de13ce775dfccee~udCV3WWy42316123161eucas1p1O; Thu, 23 Mar 2017 08:03:50 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges4.samsung.com (EUCPMTA) with SMTP id EE.DB.28517.66183D85; Thu, 23 Mar 2017 08:03:50 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170323080350eucas1p273814a2f183f04f180f8f2a2a362b86e~udCVK-3j60530105301eucas1p2L; Thu, 23 Mar 2017 08:03:50 +0000 (GMT) X-AuditID: cbfec7f4-f79716d000006f65-4a-58d381668013 Received: from eusync2.samsung.com ( [203.254.199.212]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 01.B7.10233.57183D85; Thu, 23 Mar 2017 08:04:05 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0ON90067HD26AT60@eusync2.samsung.com>; Thu, 23 Mar 2017 08:03:49 +0000 (GMT) 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?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1B?= =?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1BSam?= =?utf-8?q?sung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= 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 Precedence: bulk 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(-) -- 1.9.1 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" },