From patchwork Thu May 3 05:58:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satendra Singh Thakur X-Patchwork-Id: 10377077 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 18F62603B4 for ; Thu, 3 May 2018 05:59:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 05EE928F76 for ; Thu, 3 May 2018 05:59:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EA826290CB; Thu, 3 May 2018 05:59:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 55F3128F76 for ; Thu, 3 May 2018 05:59:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751934AbeECF7H (ORCPT ); Thu, 3 May 2018 01:59:07 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:64490 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751872AbeECF7F (ORCPT ); Thu, 3 May 2018 01:59:05 -0400 Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20180503055904epoutp021349a17f0deb0caa742a48e803c164c4~rDPTG3wvi1736617366epoutp02P for ; Thu, 3 May 2018 05:59:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20180503055904epoutp021349a17f0deb0caa742a48e803c164c4~rDPTG3wvi1736617366epoutp02P DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1525327144; bh=PfHkkxXq1voIdO3qDSHpWyfNj/Y5yYZ60gfcpyzDBHY=; h=From:To:Cc:Subject:Date:References:From; b=YDgLbk51YqRtv0FU+Kjkj/qzBC58r0kBMfTZwm6Y2xXmWI5pxqFYn/bU9zjCUiBGh o/+badmPv6q4wxYPxUBNxHrOPERVV5nIluYVRSyXfuzX1/g/BB5iyV/27UWVomwmkp 3DeLEYKVOCx4Z/MhN/O1m4kvY1JfiFWTB/EGCs5Y= Received: from epsmges5p3new.samsung.com (unknown [182.195.40.71]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20180503055903epcas5p408309427673dea8639e46fd77d122041~rDPSRgC0q2527725277epcas5p4j; Thu, 3 May 2018 05:59:03 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id 9D.7A.04244.725AAEA5; Thu, 3 May 2018 14:59:03 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20180503055902epcas5p2eea7b9f58dc630e60fb28c8fc2ffad7b~rDPR3ZjYO1156511565epcas5p2G; Thu, 3 May 2018 05:59:02 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20180503055902epsmtrp11d7f8f92dc3b5011753e9acad0af5f5d~rDPR0vq551107511075epsmtrp1H; Thu, 3 May 2018 05:59:02 +0000 (GMT) X-AuditID: b6c32a4b-19dff70000001094-7e-5aeaa527dbb0 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id B1.2F.03711.625AAEA5; Thu, 3 May 2018 14:59:02 +0900 (KST) Received: from localhost.localdomain (unknown [107.108.189.138]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20180503055858epsmtip2181e774a2cb557eb0a4023c2418b18e1~rDPN8Sz1N1395313953epsmtip2g; Thu, 3 May 2018 05:58:58 +0000 (GMT) From: Satendra Singh Thakur To: Liviu Dudau , Brian Starkey , Mali DP Maintainers , David Airlie , Boris Brezillon , Nicolas Ferre , Alexandre Belloni , Gustavo Padovan , Maarten Lankhorst , Sean Paul , Inki Dae , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Kukjin Kim , Krzysztof Kozlowski , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org Cc: Satendra Singh Thakur , Madhur Verma , Hemanshu Srivastava Subject: [PATCH] drm/kms/mode: added a new helper for calculating videomode from crtc's display mode Date: Thu, 3 May 2018 11:28:37 +0530 Message-Id: <1525327118-26078-1-git-send-email-satendra.t@samsung.com> X-Mailer: git-send-email 2.7.4 X-Brightmail-Tracker: H4sIAAAAAAAAA0WTe0xTVxzHc+69vb0+ul2rhjP+IM2Ne0hG7a0tHDbZIzPkZrgMQzaWGlNv yrUQ+mC9rZMtywhT5LGuzDHtBCtkoFmFjVWkgkEJGE1V2jGdURwPH5vQETfGIyTItt7dkv33 +f1+32++5/xyDoWrR8lUqsThFlwO3saQq4nuwc0vZDzfFjfpQsvrkDcawdChxyeV6MJVH4Hu X/0RoJvzf5CoZ6JXieKxaRwdHq8n0OTYMIF8D37HUSzWqURDldNKFHpwS4Fu9DaRyB+7gKH+ tkMEapk5S6DBr1pJdHLuOoHCZ1pw1BE7SKDRziGA/F9Oka+lcO2BdsAF2j/iGiuGCe7U3VEF FwrWkFx4YULBBSI7ufG6Kxh3pvUT7pfFNsD1HO7DuM+7goCbDaXlq0zCtmKBLxJcGsFhcRaV OKw5TF6B+Q2zMVPHZrDZKIvROHi7kMNs35GfkVtiS9yd0ezjbZ5EK58XRWbLK9tcTo9b0BQ7 RXcOs4tl9VpWl6XV6/Vag3H3S3pjQrJHKK5smgNl9wv29/x8HK8A1bm1YBUFaQPsG7mNS6ym zwP4Q/e6WrA6wX8BeGJplpCLBQAXY0vEimP5Yi+QB30Anu2qT6rmAfzm7iQmqciE6lGTXyEN NtBBEoaPXiOlAqfrAPT2HUgkUtR6ei/86e93JQNBPwsbH10nJVbRudDbdVopx6XBO9EaXPJC ulsJAwuDmDzYDn+dG0/yehi/0pU0pMIpX5VSNnwK4MR3LcniMwCray4nVa/CAw39hHQKnN4M v+/dIrdz4LVwp0JinH4KepceYpIE0ipYXaWWJZvgt5OD+ErWk+ZahcwcrLw9k+TXYXB4GMhb 3Q3DHXGsHqQd+z+sGYAgeEYoE+1WQTSWbXUIH2hF3i56HFatxWkPgf+ednreORCK7hgANAWY tar+oSmTWsHvE8vtAwBSOLNB1VAXN6lVRXz5h4LLaXZ5bII4AIyJbX6Bp260OBMfxeE2s4Zs nSEzM4vV6bINTIrqTmTMpKatvFsoFYQywbXiw6hVqRXguYvN0ePLf+4iHgY7wiNPvBrFkRr/ HrXIv/9Ox1vl/1D3PE/zEeEess0YLOObXn587LeP/aU3Tjtv7b/5onrM39AfSbFXr+m5lD2N D2yN7Fz75intmmhB+nuFR/ICG32NI+bZEylOxve2lSgtnSsMhRbn2YOXp5Dq67qqXEthazdD iMU8m467RP5fZRtj5vADAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmkeLIzCtJLcpLzFFi42LZdlhJXldt6asog5+HDC16z51ksmh/t4zd Yt+pfhaLR6cuMFpc+fqezWLng13sFq/Ov2G2mHR/AovFi3sXWSz6H79mtjh/fgO7xdmmN+wW mx5fY7W4vGsOm8WM8/uYLA4sbWexWPhxK4vF4alL2CyWfTnDYrF980Jmi7XnW1ks7m44y2gx Y/JLNgdxjzXz1jB6zFtT7TG74SKLx/Lbd1k9Nq3qZPPY/u0Bq8e8k4Ee97uPM3lsXlLvcefH UkaPnZP2Mnn0bVnF6PF5k1wAbxSXTUpqTmZZapG+XQJXRtOcL4wFj4Irdl6dy9zA2OHWxcjJ ISFgIvF3/y7GLkYuDiGB3YwSsx62MkEkpCSWvdnGBmELS6z895wdougzo8Tv6T/YQRJsQN3P 58xgBUmICOxik3g/bx4ziMMs0Mso8WL/frAqYYEUiV933oCNZRFQlZj9/AzYWF4BN4neLavZ IVbISdw818k8gZFnASPDKkbJ1ILi3PTcYsMCo7zUcr3ixNzi0rx0veT83E2M4KjR0trBeOJE /CFGAQ5GJR7eA2dfRgmxJpYVV+YeYpTgYFYS4Z3S/SpKiDclsbIqtSg/vqg0J7X4EKM0B4uS OK98/rFIIYH0xJLU7NTUgtQimCwTB6dUA2OPfGeOutZhk46NKkw3T1SeEI4+MGuhyTalCMeG Lb9nP9h4z5rX5/vdZ9UPo9f+/Wfm8qJYpU2Ex36Hs8WeZp9bzzRWevw7FxjzvUGwSthp64P/ ffbB0stmn9xz+tskpQPLe8w9XVjefT8i0Pfkp6gcw5tNmdJOUb/sPhjXdf95Wqv3c76fTq4S S3FGoqEWc1FxIgCZAZGPlgIAAA== X-CMS-MailID: 20180503055902epcas5p2eea7b9f58dc630e60fb28c8fc2ffad7b X-Msg-Generator: CA X-MTR: 20180503055902epcas5p2eea7b9f58dc630e60fb28c8fc2ffad7b CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180503055902epcas5p2eea7b9f58dc630e60fb28c8fc2ffad7b X-RootMTR: 20180503055902epcas5p2eea7b9f58dc630e60fb28c8fc2ffad7b References: Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 1. -Added a new helper drm_display_mode_crtc_to_videomode -This helper calculates mode parameters like horizontal front_porch, back_porch, sync length vertical front_porch, back_porch, sync length using crtc_* fields of struct drm_display_mode -It uses following fields of crtc mode horizontal sync start/end, active and total length vertical sync start/end, active and total length 2. -Most of the driver use user-supplied mode for calculating videomode -However, few drivers use HW (crtc) mode for calculating videomode -This helper will be useful for such drivers 3. -Currently following drivers will be using this new helper -arm hdlcd -atmel hlcdc -exynos 5433 decon -exynos7 decon -exynos fimd 4. -This patch removes related duplicate code from above mentioned drivers Signed-off-by: Satendra Singh Thakur Cc: Madhur Verma Cc: Hemanshu Srivastava Acked-by: Liviu Dudau --- drivers/gpu/drm/arm/hdlcd_crtc.c | 8 +------- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 7 +------ drivers/gpu/drm/drm_modes.c | 20 ++++++++++++++++++++ drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 22 ++++++++++------------ drivers/gpu/drm/exynos/exynos7_drm_decon.c | 23 ++++++++++------------- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 22 +++++++++------------- include/drm/drm_modes.h | 2 ++ 7 files changed, 53 insertions(+), 51 deletions(-) diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c index cf5cbd6..d20e471 100644 --- a/drivers/gpu/drm/arm/hdlcd_crtc.c +++ b/drivers/gpu/drm/arm/hdlcd_crtc.c @@ -130,13 +130,7 @@ static void hdlcd_crtc_mode_set_nofb(struct drm_crtc *crtc) struct videomode vm; unsigned int polarities, err; - vm.vfront_porch = m->crtc_vsync_start - m->crtc_vdisplay; - vm.vback_porch = m->crtc_vtotal - m->crtc_vsync_end; - vm.vsync_len = m->crtc_vsync_end - m->crtc_vsync_start; - vm.hfront_porch = m->crtc_hsync_start - m->crtc_hdisplay; - vm.hback_porch = m->crtc_htotal - m->crtc_hsync_end; - vm.hsync_len = m->crtc_hsync_end - m->crtc_hsync_start; - + drm_display_mode_crtc_to_videomode(m, &vm); polarities = HDLCD_POLARITY_DATAEN | HDLCD_POLARITY_DATA; if (m->flags & DRM_MODE_FLAG_PHSYNC) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c index d732810..bafcef6 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c @@ -81,12 +81,7 @@ static void atmel_hlcdc_crtc_mode_set_nofb(struct drm_crtc *c) unsigned int cfg; int div; - vm.vfront_porch = adj->crtc_vsync_start - adj->crtc_vdisplay; - vm.vback_porch = adj->crtc_vtotal - adj->crtc_vsync_end; - vm.vsync_len = adj->crtc_vsync_end - adj->crtc_vsync_start; - vm.hfront_porch = adj->crtc_hsync_start - adj->crtc_hdisplay; - vm.hback_porch = adj->crtc_htotal - adj->crtc_hsync_end; - vm.hsync_len = adj->crtc_hsync_end - adj->crtc_hsync_start; + drm_display_mode_crtc_to_videomode(adj, &vm); regmap_write(regmap, ATMEL_HLCDC_CFG(1), (vm.hsync_len - 1) | ((vm.vsync_len - 1) << 16)); diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index e82b61e..a406749 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -654,6 +654,26 @@ void drm_display_mode_to_videomode(const struct drm_display_mode *dmode, vm->flags |= DISPLAY_FLAGS_DOUBLECLK; } EXPORT_SYMBOL_GPL(drm_display_mode_to_videomode); +/** + * drm_display_mode_crtc_to_videomode - fill in @vm using crtc fields of@dmode, + * @dmode: drm_display_mode structure to use as source + * @vm: videomode structure to use as destination + * + * Fills out @vm using the crtc display mode specified in @dmode. + */ +void drm_display_mode_crtc_to_videomode(const struct drm_display_mode *dmode, + struct videomode *vm) +{ + vm->hfront_porch = dmode->crtc_hsync_start - dmode->crtc_hdisplay; + vm->hsync_len = dmode->crtc_hsync_end - dmode->crtc_hsync_start; + vm->hback_porch = dmode->crtc_htotal - dmode->crtc_hsync_end; + + vm->vfront_porch = dmode->crtc_vsync_start - dmode->crtc_vdisplay; + vm->vsync_len = dmode->crtc_vsync_end - dmode->crtc_vsync_start; + vm->vback_porch = dmode->crtc_vtotal - dmode->crtc_vsync_end; + +} +EXPORT_SYMBOL_GPL(drm_display_mode_crtc_to_videomode); /** * drm_bus_flags_from_videomode - extract information about pixelclk and diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index 1c330f2..1ba73a8 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -20,6 +20,7 @@ #include #include #include +#include