From patchwork Wed Apr 16 14:33:01 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajay Kumar X-Patchwork-Id: 4005191 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id F11149F4F4 for ; Thu, 17 Apr 2014 01:06:11 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 24DFC202F2 for ; Thu, 17 Apr 2014 01:06:11 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 55FD4202D1 for ; Thu, 17 Apr 2014 01:06:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A9D1A6EAD2; Wed, 16 Apr 2014 18:06:04 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by gabe.freedesktop.org (Postfix) with ESMTP id D5EB26EA6C for ; Wed, 16 Apr 2014 07:33:37 -0700 (PDT) Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N4400BTLOG02R40@mailout1.samsung.com> for dri-devel@lists.freedesktop.org; Wed, 16 Apr 2014 23:33:36 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.126]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id 6E.FF.14803.0C49E435; Wed, 16 Apr 2014 23:33:36 +0900 (KST) X-AuditID: cbfee691-b7efc6d0000039d3-45-534e94c092d4 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 67.93.29263.0C49E435; Wed, 16 Apr 2014 23:33:36 +0900 (KST) Received: from chromebld-server.sisodomain.com ([107.108.73.106]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N4400B1ROFNHZ40@mmp1.samsung.com>; Wed, 16 Apr 2014 23:33:36 +0900 (KST) From: Ajay Kumar To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 2/7] drm/panel: add pre_enable routine to drm panel Date: Wed, 16 Apr 2014 20:03:01 +0530 Message-id: <1397658786-26138-3-git-send-email-ajaykumar.rs@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1397658786-26138-1-git-send-email-ajaykumar.rs@samsung.com> References: <1397658786-26138-1-git-send-email-ajaykumar.rs@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRmVeSWpSXmKPExsWyRsSkTvfAFL9ggxn39SxurTvHarHy/V9G iwPvD7JYbHizkNniytf3bBaT7k9gsfi+6wu7xdmmN+wWM87vY7JYdXgDu8WURYdZLeYezLW4 /ZvPgddjdsNFFo+ds+6yeyzYVOpxv/s4k0dv8zs2j74tqxg9Pm+SC2CP4rJJSc3JLEst0rdL 4Mo4NvsSU8EB7oolPzayNDDu4+xi5OSQEDCROLd1FiOELSZx4d56ti5GLg4hgaWMEvN63jPB FE15sogRIrGIUeLcvA1MEM4EJokd03+DVbEJaEtsm36TBcQWEXCTaDo8kxWkiFmgn0li2p1n YDuEBZwlrnf8ZAOxWQRUJXbv6mUFsXkFPCRWLnoDZHMArVOQmDPJBiTMKeApce73RbASIaCS qU3n2EFmSgjcYpeY++gNE8QcAYlvkw+xQPTKSmw6wAxxtaTEwRU3WCYwCi9gZFjFKJpakFxQ nJReZKpXnJhbXJqXrpecn7uJERgzp/89m7iD8f4B60OMyUDjJjJLiSbnA2MuryTe0NjMyMLU xNTYyNzSjDRhJXHe9EdJQUIC6YklqdmpqQWpRfFFpTmpxYcYmTg4pRoYtdMi+U7tubLmy5mD 0TVXfV0aVz4qs99zsrJ7LnvmilLNc8xxW2Tbct5lCtR7hayz8eStNc09wLF/l05yaLimYbz0 jk818ywc9KZfdJ18JFrsqOvsddKzDR08i1SC7A5mRGZ9e73jTvDbbrNNmsbbXPOjj/68Xv9w o0p/vJH8j3inEu33cSuVWIozEg21mIuKEwGs/Ql5rwIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRmVeSWpSXmKPExsVy+t9jAd0DU/yCDebuVbe4te4cq8XK938Z LQ68P8hiseHNQmaLK1/fs1lMuj+BxeL7ri/sFmeb3rBbzDi/j8li1eEN7BZTFh1mtZh7MNfi 9m8+B16P2Q0XWTx2zrrL7rFgU6nH/e7jTB69ze/YPPq2rGL0+LxJLoA9qoHRJiM1MSW1SCE1 Lzk/JTMv3VbJOzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNctMwfoWCWFssScUqBQQGJxsZK+ HaYJoSFuuhYwjRG6viFBcD1GBmggYQ1jxrHZl5gKDnBXLPmxkaWBcR9nFyMnh4SAicSUJ4sY IWwxiQv31rN1MXJxCAksYpQ4N28DE4QzgUlix/TfTCBVbALaEtum32QBsUUE3CSaDs9kBSli Fuhnkph25xnYKGEBZ4nrHT/ZQGwWAVWJ3bt6WUFsXgEPiZWL3gDZHEDrFCTmTLIBCXMKeEqc +30RrEQIqGRq0zn2CYy8CxgZVjGKphYkFxQnpeca6hUn5haX5qXrJefnbmIER+QzqR2MKxss DjEKcDAq8fDOyPENFmJNLCuuzD3EKMHBrCTCe6HNL1iINyWxsiq1KD++qDQntfgQYzLQUROZ pUST84HJIq8k3tDYxNzU2NTSxMLEzJI0YSVx3gOt1oFCAumJJanZqakFqUUwW5g4OKUaGPPY ru/6f2pNl0zIB+m6/A9nbE90xBRf+RaWd4ZflDM6zfcRx8xFsUJ3qr6sWH+gfsmj9evM/qTX B++4l9x9ykVEfrtIavwBo4++WiKxD3OjPmqar923Iu2g6Ypb/Cxsrhmaj9fMuNYvb8Neevbb CZlfDQI7v9y6fvsIxx/1x+9T7VLlo9bYuSixFGckGmoxFxUnAgDuwnOfDAMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Mailman-Approved-At: Wed, 16 Apr 2014 18:06:02 -0700 Cc: seanpaul@google.com, abrestic@chromium.org, joshi@samsung.com, a.hajda@samsung.com, kyungmin.park@samsung.com, ajaynumb@gmail.com, treding@nvidia.com, prashanth.g@samsung.com, Ajay Kumar , rahul.sharma@samsung.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.15 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.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, 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 Most of the panels need an init sequence as mentioned below: -- poweron LCD unit/LCD_EN -- start video data -- poweron LED unit/BL_EN With existing callbacks for drm panel, we cannot accomodate such panels, since only one callback, i.e "panel_enable" is supported. This patch adds a "pre_enable" callback which can be called before the actual video data is on, and then call the "enable" callback after the video data is available. Signed-off-by: Ajay Kumar --- include/drm/drm_panel.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index c2ab77a..89210bf 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -32,6 +32,7 @@ struct drm_panel; struct drm_panel_funcs { int (*disable)(struct drm_panel *panel); + int (*pre_enable)(struct drm_panel *panel); int (*enable)(struct drm_panel *panel); int (*get_modes)(struct drm_panel *panel); }; @@ -54,6 +55,14 @@ static inline int drm_panel_disable(struct drm_panel *panel) return panel ? -ENOSYS : -EINVAL; } +static inline int drm_panel_pre_enable(struct drm_panel *panel) +{ + if (panel && panel->funcs && panel->funcs->pre_enable) + return panel->funcs->pre_enable(panel); + + return panel ? -ENOSYS : -EINVAL; +} + static inline int drm_panel_enable(struct drm_panel *panel) { if (panel && panel->funcs && panel->funcs->enable)