From patchwork Fri Feb 22 13:46:45 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rahul Sharma X-Patchwork-Id: 2176061 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id E68043FD4E for ; Fri, 22 Feb 2013 13:26:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756953Ab3BVN0r (ORCPT ); Fri, 22 Feb 2013 08:26:47 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:54517 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756922Ab3BVN0q (ORCPT ); Fri, 22 Feb 2013 08:26:46 -0500 Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MIM00MXEIOFUR70@mailout2.samsung.com> for linux-samsung-soc@vger.kernel.org; Fri, 22 Feb 2013 22:26:45 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.122]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id F6.4E.06692.51277215; Fri, 22 Feb 2013 22:26:45 +0900 (KST) X-AuditID: cbfee691-b7f556d000001a24-0b-5127721547a6 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id CD.C0.03918.41277215; Fri, 22 Feb 2013 22:26:44 +0900 (KST) Received: from chrome-ubuntu.sisodomain.com ([107.108.73.106]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MIM00F4NIN6NQ10@mmp2.samsung.com> for linux-samsung-soc@vger.kernel.org; Fri, 22 Feb 2013 22:26:44 +0900 (KST) From: Rahul Sharma To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org Cc: inki.dae@samsung.com, r.sh.open@gmail.com, sw0312.kim@samsung.com, joshi@samsung.com Subject: [PATCH v2] drm/exynos: modify condition in mixer and hdmi resume Date: Fri, 22 Feb 2013 08:46:45 -0500 Message-id: <1361540805-19055-1-git-send-email-rahul.sharma@samsung.com> X-Mailer: git-send-email 1.8.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLLMWRmVeSWpSXmKPExsWyRsSkSle0SD3QoPUNp8WM8/uYHBg9Pm+S C2CM4rJJSc3JLEst0rdL4Mp49fIsU8E/kYoL5xeyNTBeFuxi5OSQEDCR6D86mR3CFpO4cG89 WxcjF4eQwFJGiblLtjDCFH1va4JKTGeU+PV3KyOEs5lJYuXzKWDtbAK6ErMPPgPrEBFwk2g6 PJMVxGYWiJK4c24+E4gtLOAp8WpWP1icRUBVYuOOpywgNq+Ah8TSNV1sENvkJD7secQOskBC YAubxLr+V+wQDQIS3yYfAmrgAErISmw6wAxRLylxcMUNlgmMggsYGVYxiqYWJBcUJ6UXmeoV J+YWl+al6yXn525iBAbV6X/PJu5gvH/A+hBjMtC4icxSosn5wKDMK4k3NDYxNzU2NTOytLQ0 JU1YSZxX/pJMoJBAemJJanZqakFqUXxRaU5q8SFGJg5OqQbGafLsdoJcuXe2Cs320TzPseCo V/i5h77tBi6Tw73inwgn3VCrmV3yvrt132nlvma/Cz6eu83vievtOdaUfvtdipWS1rkzSstU qk9JLIlItH0uk/G93PDgxzf/WHIrdPOyy090TUmds6h+6iwO5m3HXY/XPz0lcHrV0d//Le5L OPW2cDuqPXqlxFKckWioxVxUnAgAIEVB2EACAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42I5/e+xoK5IkXqgwYtpGhYzzu9jcmD0+LxJ LoAxqoHRJiM1MSW1SCE1Lzk/JTMv3VbJOzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNctMwdo qpJCWWJOKVAoILG4WEnfDtOE0BA3XQuYxghd35AguB4jAzSQsIYx49XLs0wF/0QqLpxfyNbA eFmwi5GTQ0LAROJ7WxMbhC0mceHeeiCbi0NIYDqjxK+/WxkhnM1MEiufT2EHqWIT0JWYffAZ I4gtIuAm0XR4JiuIzSwQJXHn3HwmEFtYwFPi1ax+sDiLgKrExh1PWUBsXgEPiaVruqC2yUl8 2POIfQIj9wJGhlWMoqkFyQXFSem5hnrFibnFpXnpesn5uZsYwSH7TGoH48oGi0OMAhyMSjy8 DS5qgUKsiWXFlbmHGCU4mJVEeCcmqQcK8aYkVlalFuXHF5XmpBYfYkwG2j6RWUo0OR8YT3kl 8YbGJuamxqaWJhYmZpakCSuJ8zKeehIgJJCeWJKanZpakFoEs4WJg1OqgdFqeUafb+UK/Xb+ qCQekQcSqc57wnWWnV9qcHZKoAlz88siDd19a67JP376ODZ5ofSm8p1O+8v2zjwnb7mwQ6ND QDC8ya85J52/aNOHS7t0/r2c/ULRl1FmHm+d4QHxQ6n89Z+2BTy/GatXIVfyJrr7zc8LgWbV d4MPaz/aUvzjbXnyhfTr5UosxRmJhlrMRcWJAK3L/OydAgAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org From: Prathyush K If mixer is runtime suspended (by DPMS OFF), mixer_suspend does not call mixer_poweroff and just returns. Similarily the mixer_resume should not resume the mixer if mixer is runtime_suspended. It should be done through DPMS ON. The existing check is stopping the resume. This issue is fixed by reversing the condiftion. It also holds good for hdmi driver. v2: updated the error messages. Signed-off-by: Prathyush K Signed-off-by: Rahul Sharma --- It is based on exynos-drm-next-todo branch at git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git drivers/gpu/drm/exynos/exynos_hdmi.c | 9 ++++++--- drivers/gpu/drm/exynos/exynos_mixer.c | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 9e3c2ad..67030b1 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -2365,7 +2365,8 @@ static int hdmi_suspend(struct device *dev) drm_helper_hpd_irq_event(ctx->drm_dev); if (pm_runtime_suspended(dev)) { - DRM_DEBUG_KMS("%s : Already suspended\n", __func__); + DRM_DEBUG_KMS("%s: already runtime-suspended.\n", + __func__); return 0; } @@ -2386,8 +2387,10 @@ static int hdmi_resume(struct device *dev) enable_irq(hdata->external_irq); enable_irq(hdata->internal_irq); - if (!pm_runtime_suspended(dev)) { - DRM_DEBUG_KMS("%s : Already resumed\n", __func__); + if (pm_runtime_suspended(dev)) { + /* dpms callback should resume the hdmi. */ + DRM_DEBUG_KMS("%s: already runtime-suspended.\n", + __func__); return 0; } diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 5139a43..3c12518 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -1249,7 +1249,8 @@ static int mixer_suspend(struct device *dev) DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__); if (pm_runtime_suspended(dev)) { - DRM_DEBUG_KMS("%s : Already suspended\n", __func__); + DRM_DEBUG_KMS("%s: already runtime-suspended.\n", + __func__); return 0; } @@ -1265,8 +1266,10 @@ static int mixer_resume(struct device *dev) DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__); - if (!pm_runtime_suspended(dev)) { - DRM_DEBUG_KMS("%s : Already resumed\n", __func__); + if (pm_runtime_suspended(dev)) { + /* dpms callback should resume the mixer. */ + DRM_DEBUG_KMS("%s: already runtime-suspended.\n", + __func__); return 0; }