From patchwork Thu Jun 26 14:36:38 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajay Kumar X-Patchwork-Id: 4432791 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.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 1865BBEECB for ; Fri, 27 Jun 2014 00:57:11 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id B3CFB203AB for ; Fri, 27 Jun 2014 00:57:09 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id CE2DC20398 for ; Fri, 27 Jun 2014 00:57:07 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 294686E39B; Thu, 26 Jun 2014 17:57:05 -0700 (PDT) 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 A9FFA6E005 for ; Thu, 26 Jun 2014 07:39:26 -0700 (PDT) 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 <0N7S000AF61OTW10@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 26 Jun 2014 23:39:24 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.123]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 2A.8B.19452.C903CA35; Thu, 26 Jun 2014 23:39:24 +0900 (KST) X-AuditID: cbfee68e-b7fb96d000004bfc-a9-53ac309c0382 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 5E.C4.04943.C903CA35; Thu, 26 Jun 2014 23:39:24 +0900 (KST) Received: from chromebld-server.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 <0N7S00KL460NWW20@mmp2.samsung.com>; Thu, 26 Jun 2014 23:39:23 +0900 (KST) From: Ajay Kumar To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH V2] drm/exynos: Support DP CLKCON register in FIMD driver Date: Thu, 26 Jun 2014 20:06:38 +0530 Message-id: <1403793398-31593-1-git-send-email-ajaykumar.rs@samsung.com> X-Mailer: git-send-email 1.7.9.5 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrILMWRmVeSWpSXmKPExsWyRsSkWneOwZpggwvTRCwOvD/IYrHhzUJm iytf37NZTLo/gcXi+64v7BYzzu9jslh1eAO7xdyDuQ4cHjtn3WX3WLCp1ON+93Emj74tqxg9 Pm+SC2CN4rJJSc3JLEst0rdL4Mr4c+44U8ECiYp7Z34zNzBuEeli5OSQEDCROPjyCQuELSZx 4d56ti5GLg4hgaWMEk2nNrDAFJ05/5MZxBYSmM4osfZeHETRBCaJB3d6mEASbALaEtum3wRr EBFwk2g6PJMVpIhZYAajxN2XD9hAEsICnhLdO9+D2SwCqhILr51hBbF5BTwkbqxdD2RzAG1T kJgzyQakV0KgnV3i5KKFzBD1AhLfJh9igaiRldh0gBniOEmJgytusExgFFzAyLCKUTS1ILmg OCm9yEivODG3uDQvXS85P3cTIzB4T/971reD8eYB60OMyUDjJjJLiSbnA4M/ryTe0NjMyMLU xNTYyNzSjDRhJXHeRQ+TgoQE0hNLUrNTUwtSi+KLSnNSiw8xMnFwSjUwNkwPvfrHbzZr0dYm +wz7/dySJuL2m1dnGjffWt8ZtLZxL99knbMM62ZGlJWmxmuvCNaafS5jrnia+THuPYVebC9t L768MEmSKyN2xxSPlTxxmdtfpfm9PTxjiZF0/6GEwn/y5f8DV4jMeePzqp5LiKXc6rae4Yyk GyvnBG3b1b9lc6Wp9vJOJZbijERDLeai4kQA5Ecj1HQCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRmVeSWpSXmKPExsVy+t9jQd05BmuCDa7v4bY48P4gi8WGNwuZ La58fc9mMen+BBaL77u+sFvMOL+PyWLV4Q3sFnMP5jpweOycdZfdY8GmUo/73ceZPPq2rGL0 +LxJLoA1qoHRJiM1MSW1SCE1Lzk/JTMv3VbJOzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNct MwfoFCWFssScUqBQQGJxsZK+HaYJoSFuuhYwjRG6viFBcD1GBmggYQ1jxp9zx5kKFkhU3Dvz m7mBcYtIFyMnh4SAicSZ8z+ZIWwxiQv31rOB2EIC0xkl1t6L62LkArInMEk8uNPDBJJgE9CW 2Db9JguILSLgJtF0eCYrSBGzwAxGibsvH4B1Cwt4SnTvfA9mswioSiy8doYVxOYV8JC4sXY9 kM0BtE1BYs4kmwmM3AsYGVYxiqYWJBcUJ6XnGuoVJ+YWl+al6yXn525iBMfGM6kdjCsbLA4x CnAwKvHwfni8KliINbGsuDL3EKMEB7OSCO8xqTXBQrwpiZVVqUX58UWlOanFhxhNgZZPZJYS Tc4Hxm1eSbyhsYm5qbGppYmFiZmlkjjvgVbrQCGB9MSS1OzU1ILUIpg+Jg5OqQbG2eUFV401 +Qpf3gtPfHXX4Y+xu8PLoFdLPxYeZ/3Y77H17PyMX29d3SRnlZzetve0c9IG3x2RYRzHA8N6 mLfwaTAYPFM1/pLGzLC84YmUvv/Zg7MvHZR26y5T+j55+R0+N7GkL6+P63UJPI5bVONVUu+X VJ4y41zE3Ttf2156RrXHxRU9izdRYinOSDTUYi4qTgQAXiH49aMCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Mailman-Approved-At: Thu, 26 Jun 2014 17:57:01 -0700 Cc: seanpaul@google.com, joshi@samsung.com, ajaynumb@gmail.com, prashanth.g@samsung.com, Ajay Kumar 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.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 Add the missing setting for DP CLKCON register. This register is present on Exynos5 based FIMD controllers, and needs to be used if we are using DP. Signed-off-by: Ajay Kumar Reviewed-by: Jingoo Han --- Changes since V1: - Remove usage of driver_data to configure DP CLKCON register drivers/gpu/drm/exynos/exynos_dp_core.c | 2 ++ drivers/gpu/drm/exynos/exynos_drm_drv.h | 8 ++++++++ drivers/gpu/drm/exynos/exynos_drm_fimd.c | 5 +++++ include/video/samsung_fimd.h | 4 ++++ 4 files changed, 19 insertions(+) diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c index 2e77a15..d8868f3 100644 --- a/drivers/gpu/drm/exynos/exynos_dp_core.c +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c @@ -1336,6 +1336,8 @@ static int exynos_dp_bind(struct device *dev, struct device *master, void *data) platform_set_drvdata(pdev, &exynos_dp_display); + exynos_fimd_output_type = EXYNOS_FIMD_OUTPUT_DP; + return exynos_drm_create_enc_conn(drm_dev, &exynos_dp_display); } diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h index 36535f3..1089744 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -60,6 +60,12 @@ enum exynos_drm_output_type { EXYNOS_DISPLAY_TYPE_VIDI, }; +enum exynos_fimd_output_type { + EXYNOS_FIMD_OUTPUT_MIPI, + EXYNOS_FIMD_OUTPUT_DPI, + EXYNOS_FIMD_OUTPUT_DP, +}; + /* * Exynos drm common overlay structure. * @@ -380,4 +386,6 @@ extern struct platform_driver fimc_driver; extern struct platform_driver rotator_driver; extern struct platform_driver gsc_driver; extern struct platform_driver ipp_driver; + +extern enum exynos_fimd_output_type exynos_fimd_output_type; #endif diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index bb45ab2..a46a9c4 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -90,6 +90,8 @@ static struct fimd_driver_data exynos5_fimd_driver_data = { .has_shadowcon = 1, }; +enum exynos_fimd_output_type exynos_fimd_output_type; + struct fimd_win_data { unsigned int offset_x; unsigned int offset_y; @@ -331,6 +333,9 @@ static void fimd_commit(struct exynos_drm_manager *mgr) if (clkdiv > 1) val |= VIDCON0_CLKVAL_F(clkdiv - 1) | VIDCON0_CLKDIR; + if (exynos_fimd_output_type == EXYNOS_FIMD_OUTPUT_DP) + writel(DP_CLK_ENABLE, ctx->regs + DP_CLKCON); + writel(val, ctx->regs + VIDCON0); } diff --git a/include/video/samsung_fimd.h b/include/video/samsung_fimd.h index b039320..d8f4b0b 100644 --- a/include/video/samsung_fimd.h +++ b/include/video/samsung_fimd.h @@ -435,6 +435,10 @@ #define BLENDCON_NEW_8BIT_ALPHA_VALUE (1 << 0) #define BLENDCON_NEW_4BIT_ALPHA_VALUE (0 << 0) +/* Video clock enable for DP */ +#define DP_CLKCON 0x27C +#define DP_CLK_ENABLE 0x2 + /* Notes on per-window bpp settings * * Value Win0 Win1 Win2 Win3 Win 4