From patchwork Fri Jul 25 19:22:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajay Kumar X-Patchwork-Id: 4625331 Return-Path: X-Original-To: patchwork-linux-samsung-soc@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 DFF5B9F38C for ; Fri, 25 Jul 2014 19:25:27 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 0FC0F20179 for ; Fri, 25 Jul 2014 19:25:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 25EFE201D5 for ; Fri, 25 Jul 2014 19:25:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757205AbaGYTZZ (ORCPT ); Fri, 25 Jul 2014 15:25:25 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:44221 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751336AbaGYTZY (ORCPT ); Fri, 25 Jul 2014 15:25:24 -0400 Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N9A006LG8MA7F70@mailout1.samsung.com>; Sat, 26 Jul 2014 04:25:22 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.124]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id 74.70.13369.22FA2D35; Sat, 26 Jul 2014 04:25:22 +0900 (KST) X-AuditID: cbfee690-b7fb56d000003439-0b-53d2af222ea2 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 59.C5.05196.22FA2D35; Sat, 26 Jul 2014 04:25:22 +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 <0N9A00DP98LUTO60@mmp1.samsung.com>; Sat, 26 Jul 2014 04:25:22 +0900 (KST) From: Ajay Kumar To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org Cc: inki.dae@samsung.com, thierry.reding@gmail.com, robdclark@gmail.com, daniel.vetter@ffwll.ch, seanpaul@google.com, ajaynumb@gmail.com, jg1.han@samsung.com, joshi@samsung.com, prashanth.g@samsung.com, Ajay Kumar , Sean Paul Subject: [PATCH V6 4/8] drm/exynos: Move DP setup into commit() Date: Sat, 26 Jul 2014 00:52:06 +0530 Message-id: <1406316130-4744-5-git-send-email-ajaykumar.rs@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1406316130-4744-1-git-send-email-ajaykumar.rs@samsung.com> References: <1406316130-4744-1-git-send-email-ajaykumar.rs@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprPIsWRmVeSWpSXmKPExsWyRsSkRldp/aVggy1r9CwOvD/IYrHhzUJm i4UP7zJbzD9yjtXiytf3bBaT7k9gsbi88BKrxfddX9gtZpzfx2Sx6vAGdovnC38wW9zdcJbR Yu7BXIufu+axOPB5zG64yOKx99sCFo+ds+6yeyzYVOpxv/s4k0ffllWMHp83yQWwR3HZpKTm ZJalFunbJXBl/NzTy1pwWaSi7dBElgbGJYJdjJwcEgImEnNu/2OEsMUkLtxbz9bFyMUhJLCU UeJw90IWmKL7N6ewQCQWMUqs3vOdFcKZwCTxbvNqZpAqNgFtiW3TbwJVcXCICKRIPP/LB1LD LDCTSWLFr2Z2kLiwgL3EvFXZICaLgKrEtKllIJ28Au4Sr1Y/ZQYJSwgoSMyZZAMS5hTwkGi6 +Q7sBCGgkscrpoNtlRC4xy6x4XAr2NEsAgIS3yYfYoHolZXYdIAZ4mRJiYMrbrBMYBRewMiw ilE0tSC5oDgpvchErzgxt7g0L10vOT93EyMwck7/ezZhB+O9A9aHGJOBxk1klhJNzgdGXl5J vKGxmZGFqYmpsZG5pRlpwkrivGqPkoKEBNITS1KzU1MLUovii0pzUosPMTJxcEo1MDpFqb+1 v3NX222SggeH9dx9qrG/2fan6xmaHdvHLRcYKWp09yx/Q+NtowvVb8uWLVpnuCNOS0qjnnff twlH7148xLV01onW77wx5o2L5sktkbA8duRfz5yn+9+VXczWKngic+xhe1H4fsZFZ+scIpVU 2l/uPJT93PRmZf2ZS3Pv27+Zm1+lxq/EUpyRaKjFXFScCAC+M964sgIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHIsWRmVeSWpSXmKPExsVy+t9jAV2l9ZeCDT4vULU48P4gi8WGNwuZ LRY+vMtsMf/IOVaLK1/fs1lMuj+BxeLywkusFt93fWG3mHF+H5PFqsMb2C2eL/zBbHF3w1lG i7kHcy1+7prH4sDnMbvhIovH3m8LWDx2zrrL7rFgU6nH/e7jTB59W1YxenzeJBfAHtXAaJOR mpiSWqSQmpecn5KZl26r5B0c7xxvamZgqGtoaWGupJCXmJtqq+TiE6DrlpkDdLKSQlliTilQ KCCxuFhJ3w7ThNAQN10LmMYIXd+QILgeIwM0kLCGMePnnl7WgssiFW2HJrI0MC4R7GLk5JAQ MJG4f3MKC4QtJnHh3nq2LkYuDiGBRYwSq/d8Z4VwJjBJvNu8mhmkik1AW2Lb9JtAHRwcIgIp Es//8oHUMAvMZJJY8auZHSQuLGAvMW9VNojJIqAqMW1qGUgnr4C7xKvVT5lBwhICChJzJtmA hDkFPCSabr4DO0EIqOTxiumsExh5FzAyrGIUTS1ILihOSs810itOzC0uzUvXS87P3cQIjstn 0jsYVzVYHGIU4GBU4uENqLoULMSaWFZcmXuIUYKDWUmEt2wOUIg3JbGyKrUoP76oNCe1+BCj KdBNE5mlRJPzgSkjryTe0NjE3NTY1NLEwsTMUkmc92CrdaCQQHpiSWp2ampBahFMHxMHp1QD Y1EBfwkHz/n23dFsL3bLLzwqtNExcpn3p6v/Dr6LLff7Unnm4yrzC8rnvk+dXDbXePu+2PQT KZ/ruQ+9eid59OzUpwt5DJIaDe+pV8jYBy97e1cl+lnUq8Sdnx/sbQjpO900Pzpxwackfkfr 4K6LMky5TR/+vJp+x1Tkyfl5C912VWZ1TeVQC1BiKc5INNRiLipOBACjqjT14QIAAA== 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 X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, 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 This patch moves the DP training and video enable from the hotplug handler into commit(). Signed-off-by: Sean Paul Signed-off-by: Ajay Kumar --- drivers/gpu/drm/exynos/exynos_dp_core.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c index 845d766..4b6ad95 100644 --- a/drivers/gpu/drm/exynos/exynos_dp_core.c +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c @@ -875,10 +875,18 @@ static irqreturn_t exynos_dp_irq_handler(int irq, void *arg) static void exynos_dp_hotplug(struct work_struct *work) { struct exynos_dp_device *dp; - int ret; dp = container_of(work, struct exynos_dp_device, hotplug_work); + if (dp->drm_dev) + drm_helper_hpd_irq_event(dp->drm_dev); +} + +static void exynos_dp_commit(struct exynos_drm_display *display) +{ + struct exynos_dp_device *dp = display->ctx; + int ret; + ret = exynos_dp_detect_hpd(dp); if (ret) { /* Cable has been disconnected, we're done */ @@ -1050,8 +1058,10 @@ static void exynos_dp_phy_exit(struct exynos_dp_device *dp) } } -static void exynos_dp_poweron(struct exynos_dp_device *dp) +static void exynos_dp_poweron(struct exynos_drm_display *display) { + struct exynos_dp_device *dp = display->ctx; + if (dp->dpms_mode == DRM_MODE_DPMS_ON) return; @@ -1059,10 +1069,13 @@ static void exynos_dp_poweron(struct exynos_dp_device *dp) exynos_dp_phy_init(dp); exynos_dp_init_dp(dp); enable_irq(dp->irq); + exynos_dp_commit(display); } -static void exynos_dp_poweroff(struct exynos_dp_device *dp) +static void exynos_dp_poweroff(struct exynos_drm_display *display) { + struct exynos_dp_device *dp = display->ctx; + if (dp->dpms_mode != DRM_MODE_DPMS_ON) return; @@ -1078,12 +1091,12 @@ static void exynos_dp_dpms(struct exynos_drm_display *display, int mode) switch (mode) { case DRM_MODE_DPMS_ON: - exynos_dp_poweron(dp); + exynos_dp_poweron(display); break; case DRM_MODE_DPMS_STANDBY: case DRM_MODE_DPMS_SUSPEND: case DRM_MODE_DPMS_OFF: - exynos_dp_poweroff(dp); + exynos_dp_poweroff(display); break; default: break; @@ -1094,6 +1107,7 @@ static void exynos_dp_dpms(struct exynos_drm_display *display, int mode) static struct exynos_drm_display_ops exynos_dp_display_ops = { .create_connector = exynos_dp_create_connector, .dpms = exynos_dp_dpms, + .commit = exynos_dp_commit, }; static struct exynos_drm_display exynos_dp_display = {