From patchwork Wed Aug 31 12:55:57 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 75090 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp321526qga; Wed, 31 Aug 2016 05:56:28 -0700 (PDT) X-Received: by 10.98.59.205 with SMTP id w74mr16676273pfj.156.1472648187977; Wed, 31 Aug 2016 05:56:27 -0700 (PDT) Return-Path: Received: from gabe.freedesktop.org (gabe.freedesktop.org. [2610:10:20:722:a800:ff:fe36:1795]) by mx.google.com with ESMTPS id m66si4640541pfk.253.2016.08.31.05.56.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Aug 2016 05:56:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 2610:10:20:722:a800:ff:fe36:1795 as permitted sender) client-ip=2610:10:20:722:a800:ff:fe36:1795; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 2610:10:20:722:a800:ff:fe36:1795 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DD10C6E749; Wed, 31 Aug 2016 12:56:26 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 740436E747 for ; Wed, 31 Aug 2016 12:56:18 +0000 (UTC) Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OCR00KHCYLR6V00@mailout1.w1.samsung.com> for dri-devel@lists.freedesktop.org; Wed, 31 Aug 2016 13:56:15 +0100 (BST) X-AuditID: cbfec7f5-f792e6d0000013f5-e0-57c6d3eeaf18 Received: from eusync1.samsung.com ( [203.254.199.211]) by eucpsbgm2.samsung.com (EUCPMTA) with SMTP id 56.5E.05109.EE3D6C75; Wed, 31 Aug 2016 13:56:15 +0100 (BST) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OCR00GIKYLJHR40@eusync1.samsung.com>; Wed, 31 Aug 2016 13:56:14 +0100 (BST) From: Marek Szyprowski To: dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 4/6] drm/exynos: g2d: fix system and runtime pm integration Date: Wed, 31 Aug 2016 14:55:57 +0200 Message-id: <1472648159-9814-5-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1472648159-9814-1-git-send-email-m.szyprowski@samsung.com> References: <1472648159-9814-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLLMWRmVeSWpSXmKPExsVy+t/xy7rvLx8LN5htY3Fr3TlWi40z1rNa XPn6ns1i0v0JLBYv7l1ksXj9wtCiZ8NWVosZ5/cxWaw9cpfd4vCbdiB38ks2B26P+93HmTz6 tqxi9Pi8SS6AOYrLJiU1J7MstUjfLoErY9GOLawF7fwV76f+ZmxgPMrTxcjJISFgItH+aBUb hC0mceHeeiCbi0NIYCmjxO6m6YwQThOTxJnTC1hAqtgEDCW63naBdYgIpEp0r13PBFLELPCY SeLNqvnsIAlhAW+J5+c/MYPYLAKqEq0HN4PZvALuEpPnvWGCWCcncfLYZFYQm1PAQ2L1rLdg thBQzdqH51knMPIuYGRYxSiaWppcUJyUnmukV5yYW1yal66XnJ+7iRESaF93MC49ZnWIUYCD UYmH98Cso+FCrIllxZW5hxglOJiVRHjFLh4LF+JNSaysSi3Kjy8qzUktPsQozcGiJM47c9f7 ECGB9MSS1OzU1ILUIpgsEwenVANjgKFnyUzXSymFLad/F9opnSnXUjtmqsF3xknQJLcnqWiS wOU8/0KNHp9Jp7ZJhie5XntbdHEBW9hle5dJtheYGWzOFJTq8nycceTrjyltCw5MTnObOCmm ++72Aw7/Dl1lenKIS+PP+r/vynJ9py5Yor1R7abfZnvrSXf7ZBv6HcNL91718S9TYinOSDTU Yi4qTgQAPjtjDDACAAA= Cc: Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , Sylwester Nawrocki , Marek Szyprowski X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Move code from system sleep pm to runtime pm callbacks to ensure proper driver state preservation when device is under power domain. Then, use generic helpers for using runtime pm for system sleep pm. Signed-off-by: Marek Szyprowski --- drivers/gpu/drm/exynos/exynos_drm_g2d.c | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c index 4bf00f57ffe8..6eca8bb88648 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c @@ -1475,8 +1475,8 @@ static int g2d_remove(struct platform_device *pdev) return 0; } -#ifdef CONFIG_PM_SLEEP -static int g2d_suspend(struct device *dev) +#ifdef CONFIG_PM +static int g2d_runtime_suspend(struct device *dev) { struct g2d_data *g2d = dev_get_drvdata(dev); @@ -1490,25 +1490,6 @@ static int g2d_suspend(struct device *dev) flush_work(&g2d->runqueue_work); - return 0; -} - -static int g2d_resume(struct device *dev) -{ - struct g2d_data *g2d = dev_get_drvdata(dev); - - g2d->suspended = false; - g2d_exec_runqueue(g2d); - - return 0; -} -#endif - -#ifdef CONFIG_PM -static int g2d_runtime_suspend(struct device *dev) -{ - struct g2d_data *g2d = dev_get_drvdata(dev); - clk_disable_unprepare(g2d->gate_clk); return 0; @@ -1523,12 +1504,16 @@ static int g2d_runtime_resume(struct device *dev) if (ret < 0) dev_warn(dev, "failed to enable clock.\n"); + g2d->suspended = false; + g2d_exec_runqueue(g2d); + return ret; } #endif static const struct dev_pm_ops g2d_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(g2d_suspend, g2d_resume) + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) SET_RUNTIME_PM_OPS(g2d_runtime_suspend, g2d_runtime_resume, NULL) };