From patchwork Thu Feb 5 07:11:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joonyoung Shim X-Patchwork-Id: 5782201 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 9F5F7BF440 for ; Thu, 5 Feb 2015 07:11:40 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BB9E7202C8 for ; Thu, 5 Feb 2015 07:11:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C9CDE20279 for ; Thu, 5 Feb 2015 07:11:38 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1420272086; Wed, 4 Feb 2015 23:11:38 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by gabe.freedesktop.org (Postfix) with ESMTP id DBB1C6E1EE for ; Wed, 4 Feb 2015 23:11:32 -0800 (PST) Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NJA006Q8EN71I20@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 05 Feb 2015 16:11:31 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.116]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 5A.58.11124.3A713D45; Thu, 05 Feb 2015 16:11:31 +0900 (KST) X-AuditID: cbfee68e-f79b46d000002b74-d6-54d317a3f252 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 67.98.20081.3A713D45; Thu, 05 Feb 2015 16:11:31 +0900 (KST) Received: from localhost.localdomain ([10.252.81.123]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0NJA002ZZEN6UM90@mmp2.samsung.com>; Thu, 05 Feb 2015 16:11:31 +0900 (KST) From: Joonyoung Shim To: dri-devel@lists.freedesktop.org Subject: [PATCH 3/4] drm/exynos: remove exynos_plane_dpms Date: Thu, 05 Feb 2015 16:11:37 +0900 Message-id: <1423120298-28619-3-git-send-email-jy0922.shim@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1423120298-28619-1-git-send-email-jy0922.shim@samsung.com> References: <1423120298-28619-1-git-send-email-jy0922.shim@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsWyRsSkRHex+OUQg097jS3+b5vIbHHl63s2 i0+rW9ktJt2fwGLx4t5FFosZk1+yObB5/H1+ncVj77cFLB73u48zefRtWcUYwBLFZZOSmpNZ llqkb5fAlTF1xX7mgl0SFQtPrWVqYDwh0sXIySEhYCLR8uA9I4QtJnHh3nq2LkYuDiGBpYwS q5/eY4cpmnZiMzOILSQwnVFi3iRXiKI2JomDdzYxgSTYBPQk7mw7DmaLCChL/J24Cmwqs0Ct xL35EBuEBSwlNr6aDDaURUBVYsbxFiCbg4NXwF3i/XI9iF1yEiePTWYFsTkFPCT+PIRoFQIq WfJzPjPIXgmBdnaJj0v7mCDmCEh8m3yIBWSOhICsxKYDzBBzJCUOrrjBMoFReAEjwypG0dSC 5ILipPQiI73ixNzi0rx0veT83E2MwJA+/e9Z3w7GmwesDzEKcDAq8fBa7LsUIsSaWFZcmXuI 0RRow0RmKdHkfGDk5JXEGxqbGVmYmpgaG5lbmimJ8yZI/QwWEkhPLEnNTk0tSC2KLyrNSS0+ xMjEwSnVwKjsv95/68Jw09chv50X3Epq07q3RCVOz+G1qOQz59JV034nBGyVe+sv3p1z7ST7 bucPUw5+Xim/6OFhobU3a94/P2qw+fcOtvI14XlGn+62xz0O/CG8Z3L0gY6XItnRD9PlClj4 /pztFF3SZShQdMi95aDb1bo98dcv11hadR7bIqX98IrPxxVKLMUZiYZazEXFiQDZrMVIZAIA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRmVeSWpSXmKPExsVy+t9jQd3F4pdDDN5d17b4v20is8WVr+/Z LD6tbmW3mHR/AovFi3sXWSxmTH7J5sDm8ff5dRaPvd8WsHjc7z7O5NG3ZRVjAEtUA6NNRmpi SmqRQmpecn5KZl66rZJ3cLxzvKmZgaGuoaWFuZJCXmJuqq2Si0+ArltmDtB6JYWyxJxSoFBA YnGxkr4dpgmhIW66FjCNEbq+IUFwPUYGaCBhDWPG1BX7mQt2SVQsPLWWqYHxhEgXIyeHhICJ xLQTm5khbDGJC/fWs4HYQgLTGSXmTXLtYuQCstuYJA7e2cQEkmAT0JO4s+04mC0ioCzxd+Iq RhCbWaBW4t7892C2sIClxMZXk9lBbBYBVYkZx1uAbA4OXgF3iffL9SB2yUmcPDaZFcTmFPCQ +PMQolUIqGTJz/nMExh5FzAyrGIUTS1ILihOSs811CtOzC0uzUvXS87P3cQIjphnUjsYVzZY HGIU4GBU4uG13HcpRIg1say4MvcQowQHs5IIrybH5RAh3pTEyqrUovz4otKc1OJDjKZAR01k lhJNzgdGc15JvKGxiZmRpZG5oYWRsbmSOK+SfVuIkEB6YklqdmpqQWoRTB8TB6dUA6NjmW2j pDijLmN9Vev5sw/qmJXL5jrOqmHi+Hq4yPtL/FbdgCUG527kXVjc6STNHNsZY7ak1d/5QWac 3a6lj88wX0lZsCyJs7Ox/r5n/ZmUydKFaU97yvc7Pr/27KiRhEQQV6HU/fB55p+EC9L9xOct +rpwzZ+FUn0uzl5RvMIKmoyTrs+4qMRSnJFoqMVcVJwIALpSkKauAgAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: gustavo.padovan@collabora.co.uk, sw0312.kim@samsung.com 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" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The exynos_plane_dpms function handles enabled flag of exynos plane and calls internal hw driver callback function for hw overlay on/off. But it causes state disharmory problem currently and is will be obstacle to apply atomic operation later to keep non-standard per-plane dpms state like enabled flag. Let's remove enabled flag, it just stop to recall internal callback function but hw drivers can handle it properly. And call internal callback function directly then we can remove unnecessary exynos_plane_dpms function Signed-off-by: Joonyoung Shim --- drivers/gpu/drm/exynos/exynos_drm_plane.c | 33 ++++++------------------------- drivers/gpu/drm/exynos/exynos_drm_plane.h | 1 - 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c index 358cff6..2dfb847 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c @@ -145,32 +145,6 @@ void exynos_plane_mode_set(struct drm_plane *plane, struct drm_crtc *crtc, exynos_crtc->ops->win_mode_set(exynos_crtc, exynos_plane); } -void exynos_plane_dpms(struct drm_plane *plane, int mode) -{ - struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane); - struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(plane->crtc); - - if (mode == DRM_MODE_DPMS_ON) { - if (exynos_plane->enabled) - return; - - if (exynos_crtc->ops->win_enable) - exynos_crtc->ops->win_enable(exynos_crtc, - exynos_plane->zpos); - - exynos_plane->enabled = true; - } else { - if (!exynos_plane->enabled) - return; - - if (exynos_crtc->ops->win_disable) - exynos_crtc->ops->win_disable(exynos_crtc, - exynos_plane->zpos); - - exynos_plane->enabled = false; - } -} - int exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, struct drm_framebuffer *fb, int crtc_x, int crtc_y, @@ -199,7 +173,12 @@ exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, static int exynos_disable_plane(struct drm_plane *plane) { - exynos_plane_dpms(plane, DRM_MODE_DPMS_OFF); + struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane); + struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(plane->crtc); + + if (exynos_crtc->ops->win_disable) + exynos_crtc->ops->win_disable(exynos_crtc, + exynos_plane->zpos); return 0; } diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.h b/drivers/gpu/drm/exynos/exynos_drm_plane.h index 59d4075..9d3c374 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_plane.h +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.h @@ -20,7 +20,6 @@ int exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, unsigned int crtc_w, unsigned int crtc_h, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h); -void exynos_plane_dpms(struct drm_plane *plane, int mode); struct drm_plane *exynos_plane_init(struct drm_device *dev, unsigned long possible_crtcs, enum drm_plane_type type);