From patchwork Wed Mar 15 14:41:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 9625839 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 C42E760522 for ; Wed, 15 Mar 2017 14:44:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B74AA2863A for ; Wed, 15 Mar 2017 14:44:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ABF7928639; Wed, 15 Mar 2017 14:44:42 +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=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI 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 17F192863A for ; Wed, 15 Mar 2017 14:44:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753980AbdCOOmR (ORCPT ); Wed, 15 Mar 2017 10:42:17 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:11442 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753979AbdCOOlV (ORCPT ); Wed, 15 Mar 2017 10:41:21 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OMV00D5224SXE60@mailout1.w1.samsung.com> for linux-samsung-soc@vger.kernel.org; Wed, 15 Mar 2017 14:41:16 +0000 (GMT) Received: from eusmges2.samsung.com (unknown [203.254.199.241]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170315144115eucas1p26a7f3c3157ef7ccf20b1fa1dcc43370f~sFTC62ocP1293212932eucas1p2s; Wed, 15 Mar 2017 14:41:15 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2.samsung.com (EUCPMTA) with SMTP id B4.4E.30614.B8259C85; Wed, 15 Mar 2017 14:41:15 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170315144114eucas1p1a7efe1aa1d8b74861c08d4d3d45d4545~sFTCG0MEf0136601366eucas1p1X; Wed, 15 Mar 2017 14:41:14 +0000 (GMT) X-AuditID: cbfec7f1-f793f6d000007796-ff-58c9528b5d0c Received: from eusync2.samsung.com ( [203.254.199.212]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id B2.63.10233.79259C85; Wed, 15 Mar 2017 14:41:27 +0000 (GMT) Received: from AMDC2768.DIGITAL.local ([106.120.43.17]) by eusync2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OMV00GPG24OBF60@eusync2.samsung.com>; Wed, 15 Mar 2017 14:41:14 +0000 (GMT) From: Andrzej Hajda To: Inki Dae Cc: Andrzej Hajda , Bartlomiej Zolnierkiewicz , Marek Szyprowski , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Javier Martinez Canillas Subject: [PATCH v3 03/10] drm/exynos: kill exynos_drm_crtc::pipe Date: Wed, 15 Mar 2017 15:41:03 +0100 Message-id: <1489588870-7785-4-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1489588870-7785-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDIsWRmVeSWpSXmKPExsWy7djP87rdQScjDBb+FrW4te4cq8XGGetZ La58fc9mMen+BBaLN2/XMFmcP7+B3WLG+X1MFmuP3GV34PDYtKqTzeN+93Emjy39d9k9+ras YvT4vEkugDWKyyYlNSezLLVI3y6BK2P1439sBU3mFa2PelkaGKfodTFyckgImEh03ZjMDmGL SVy4t54NxBYSWMoosem0cxcjF5D9mVFiwr9bbDANs75MZIIoWsYosbrHBKLoP6PE1S0nGEES bAKaEn833wRrEBFQlli1r50dpIhZYAOTxM3Zz4GKODiEBRwk5k+tBzFZBFQlLr9PAzF5BZwk tu1zhlglJ3HzXCcziM0p4Cyx/txsJpApEgK/2STe7dzLBlIvISArsekAM0S9i8Smm5MZIWxh iVfHt0D9JSNxeXI3C0RvN6PEp/4T7BDOFEaJfx9mQHVbSxw+fpEVxGYW4JOYtG06M8QCXomO NiGIEg+JRcv3QZU7SmzdeoYZ4vdpjBKH53ezTGCUWcDIsIpRJLW0ODc9tdhIrzgxt7g0L10v OT93EyMwjk//O/5xB+P7E1aHGAU4GJV4eCf4nowQYk0sK67MPcQowcGsJMJ7wx8oxJuSWFmV WpQfX1Sak1p8iFGag0VJnHfPgivhQgLpiSWp2ampBalFMFkmDk6pBkafVo5XNf9iYnJ3/bjI Mb9xD/OFxvNKzJ872I+dyv3YuYPx9tZu53yHjvboXXO3ZRva19u/FCjd+KL/+ZVbYiZfBSz2 r2Co3233jVVhb6mJ0fXQrx9UbsZsbNvqtEfq8FvL040sQu+sGp8uyjL9a5Ol8EvsGXN4m1yW XtY3trDCmLVPf+bc2q3EUpyRaKjFXFScCABS3D1v3wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNLMWRmVeSWpSXmKPExsVy+t/xK7rTg05GGHx+p2pxa905VouNM9az Wlz5+p7NYtL9CSwWb96uYbI4f34Du8WM8/uYLNYeucvuwOGxaVUnm8f97uNMHlv677J79G1Z xejxeZNcAGuUm01GamJKapFCal5yfkpmXrqtUmiIm66FkkJeYm6qrVKErm9IkJJCWWJOKZBn ZIAGHJwD3IOV9O0S3DJWP/7HVtBkXtH6qJelgXGKXhcjJ4eEgInErC8TmSBsMYkL99azdTFy cQgJLGGUuP3tKDNIQkigkUmid0MCiM0moCnxd/NNNhBbREBZYtW+dnaQBmaBDUwSd/tOsnYx cnAICzhIzJ9aD2KyCKhKXH6fBmLyCjhJbNvnDLFKTuLmuU6w6ZwCzhLrz81mgtjkJPGq+TDT BEbeBYwMqxhFUkuLc9Nzi430ihNzi0vz0vWS83M3MQIDetuxn1t2MHa9Cz7EKMDBqMTDO8H3 ZIQQa2JZcWXuIUYJDmYlEd59gUAh3pTEyqrUovz4otKc1OJDjKZAJ01klhJNzgdGW15JvKGJ obmloZGxhYW5kZGSOO/UD1fChQTSE0tSs1NTC1KLYPqYODilGhhPNTi8tgl33bGY+amMnnrF 74hFp0MOLfTjraqsmhc6wTVISHjh1jfXbxcV+brvFpq6bcL6juJO3Xjn+lz5j2HZx+Y8SZsd Xdy7sPzJ14S+nuUiE97vs/W4IKX2Rfri+6lPpETCpysF2T0IWXnIT+DGwWfCFz+ezP+5QuRW 7aJCUdUj/flLGrcosRRnJBpqMRcVJwIAWJjP434CAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170315144114eucas1p1a7efe1aa1d8b74861c08d4d3d45d4545 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170315144114eucas1p1a7efe1aa1d8b74861c08d4d3d45d4545 X-RootMTR: 20170315144114eucas1p1a7efe1aa1d8b74861c08d4d3d45d4545 References: <1489588870-7785-1-git-send-email-a.hajda@samsung.com> 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 Since crtc index is stored in drm_crtc pipe field became redundant. The patch beside removing the field simplifies also exynos_drm_crtc_get_pipe_from_type. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 3 +-- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 3 +-- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 12 +++--------- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 1 - drivers/gpu/drm/exynos/exynos_drm_drv.h | 8 -------- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 +-- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 3 +-- drivers/gpu/drm/exynos/exynos_mixer.c | 3 +-- 8 files changed, 8 insertions(+), 28 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index 12f6c27..421fd94 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -614,8 +614,7 @@ static int decon_bind(struct device *dev, struct device *master, void *data) out_type = (ctx->out_type & IFTYPE_HDMI) ? EXYNOS_DISPLAY_TYPE_HDMI : EXYNOS_DISPLAY_TYPE_LCD; ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base, - ctx->pipe, out_type, - &decon_crtc_ops, ctx); + out_type, &decon_crtc_ops, ctx); if (IS_ERR(ctx->crtc)) { ret = PTR_ERR(ctx->crtc); goto err; diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c index 4881180..0ccb334 100644 --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c @@ -656,8 +656,7 @@ static int decon_bind(struct device *dev, struct device *master, void *data) exynos_plane = &ctx->planes[DEFAULT_WIN]; ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base, - ctx->pipe, EXYNOS_DISPLAY_TYPE_LCD, - &decon_crtc_ops, ctx); + EXYNOS_DISPLAY_TYPE_LCD, &decon_crtc_ops, ctx); if (IS_ERR(ctx->crtc)) { decon_ctx_remove(ctx); return PTR_ERR(ctx->crtc); diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c index c02378b..2d0aa11 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c @@ -166,7 +166,6 @@ static const struct drm_crtc_funcs exynos_crtc_funcs = { struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, struct drm_plane *plane, - int pipe, enum exynos_drm_output_type type, const struct exynos_drm_crtc_ops *ops, void *ctx) @@ -179,7 +178,6 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, if (!exynos_crtc) return ERR_PTR(-ENOMEM); - exynos_crtc->pipe = pipe; exynos_crtc->type = type; exynos_crtc->ops = ops; exynos_crtc->ctx = ctx; @@ -206,13 +204,9 @@ int exynos_drm_crtc_get_pipe_from_type(struct drm_device *drm_dev, { struct drm_crtc *crtc; - list_for_each_entry(crtc, &drm_dev->mode_config.crtc_list, head) { - struct exynos_drm_crtc *exynos_crtc; - - exynos_crtc = to_exynos_crtc(crtc); - if (exynos_crtc->type == out_type) - return exynos_crtc->pipe; - } + drm_for_each_crtc(crtc, drm_dev) + if (to_exynos_crtc(crtc)->type == out_type) + return drm_crtc_index(crtc); return -EPERM; } diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.h b/drivers/gpu/drm/exynos/exynos_drm_crtc.h index 9634fe5..ef58b64 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.h +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.h @@ -19,7 +19,6 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, struct drm_plane *plane, - int pipe, enum exynos_drm_output_type type, const struct exynos_drm_crtc_ops *ops, void *context); diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h index 906ab7a..7e54be1 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -154,13 +154,6 @@ struct exynos_drm_clk { * * @base: crtc object. * @type: one of EXYNOS_DISPLAY_TYPE_LCD and HDMI. - * @pipe: a crtc index created at load() with a new crtc object creation - * and the crtc object would be set to private->crtc array - * to get a crtc object corresponding to this pipe from private->crtc - * array when irq interrupt occurred. the reason of using this pipe is that - * drm framework doesn't support multiple irq yet. - * we can refer to the crtc to current hardware interrupt occurred through - * this pipe value. * @enabled: if the crtc is enabled or not * @event: vblank event that is currently queued for flip * @wait_update: wait all pending planes updates to finish @@ -171,7 +164,6 @@ struct exynos_drm_clk { struct exynos_drm_crtc { struct drm_crtc base; enum exynos_drm_output_type type; - unsigned int pipe; const struct exynos_drm_crtc_ops *ops; void *ctx; struct exynos_drm_clk *pipe_clk; diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index eb4cd82..caaccd8 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -1017,8 +1017,7 @@ static int fimd_bind(struct device *dev, struct device *master, void *data) exynos_plane = &ctx->planes[DEFAULT_WIN]; ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base, - ctx->pipe, EXYNOS_DISPLAY_TYPE_LCD, - &fimd_crtc_ops, ctx); + EXYNOS_DISPLAY_TYPE_LCD, &fimd_crtc_ops, ctx); if (IS_ERR(ctx->crtc)) return PTR_ERR(ctx->crtc); diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c index 5d9a62a..67f365f 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c @@ -417,8 +417,7 @@ static int vidi_bind(struct device *dev, struct device *master, void *data) exynos_plane = &ctx->planes[DEFAULT_WIN]; ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base, - ctx->pipe, EXYNOS_DISPLAY_TYPE_VIDI, - &vidi_crtc_ops, ctx); + EXYNOS_DISPLAY_TYPE_VIDI, &vidi_crtc_ops, ctx); if (IS_ERR(ctx->crtc)) { DRM_ERROR("failed to create crtc.\n"); return PTR_ERR(ctx->crtc); diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 25edb63..3fb8cf3 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -1165,8 +1165,7 @@ static int mixer_bind(struct device *dev, struct device *manager, void *data) exynos_plane = &ctx->planes[DEFAULT_WIN]; ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base, - ctx->pipe, EXYNOS_DISPLAY_TYPE_HDMI, - &mixer_crtc_ops, ctx); + EXYNOS_DISPLAY_TYPE_HDMI, &mixer_crtc_ops, ctx); if (IS_ERR(ctx->crtc)) { mixer_ctx_remove(ctx); ret = PTR_ERR(ctx->crtc);