From patchwork Mon Nov 17 08:54:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 5316261 Return-Path: X-Original-To: patchwork-linux-samsung-soc@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 0E53DC11AC for ; Mon, 17 Nov 2014 08:55:18 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5A8442010B for ; Mon, 17 Nov 2014 08:55:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8298C20148 for ; Mon, 17 Nov 2014 08:55:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751836AbaKQIzM (ORCPT ); Mon, 17 Nov 2014 03:55:12 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:50260 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751668AbaKQIzL (ORCPT ); Mon, 17 Nov 2014 03:55:11 -0500 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NF600GO5E8LBZ40@mailout2.w1.samsung.com> for linux-samsung-soc@vger.kernel.org; Mon, 17 Nov 2014 08:57:57 +0000 (GMT) X-AuditID: cbfec7f4-b7f6c6d00000120b-b4-5469b7ee04ad Received: from eusync4.samsung.com ( [203.254.199.214]) by eucpsbgm1.samsung.com (EUCPMTA) with SMTP id EE.BB.04619.EE7B9645; Mon, 17 Nov 2014 08:55:10 +0000 (GMT) Received: from AMDC1061.digital.local ([106.116.147.88]) by eusync4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0NF600I3ZE3A0A50@eusync4.samsung.com>; Mon, 17 Nov 2014 08:55:10 +0000 (GMT) From: Andrzej Hajda To: Inki Dae Cc: Andrzej Hajda , Marek Szyprowski , Joonyoung Shim , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS FOR E...), linux-samsung-soc@vger.kernel.org (moderated list:ARM/S5P EXYNOS AR...) Subject: [PATCH 09/14] drm/exynos/vidi: embed display into private context Date: Mon, 17 Nov 2014 09:54:22 +0100 Message-id: <1416214467-6179-10-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1416214467-6179-1-git-send-email-a.hajda@samsung.com> References: <1416214467-6179-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBJMWRmVeSWpSXmKPExsVy+t/xa7rvtmeGGFx4zWVxa905VosrX9+z WUy6P4HF4sW9iywWM87vY7JYe+QuuwObx/3u40wefVtWMXp83iQXwBzFZZOSmpNZllqkb5fA lbH97CbWggbBivn/njA1MM7n62Lk5JAQMJE4du0WO4QtJnHh3nq2LkYuDiGBpYwSrc+uMkM4 fUwSW182g1WxCWhK/N18kw3EFhFQlli1r50dpIhZYCKTxPx/81hBEsICXhKvGjaAFbEIqEp8 O3QRzOYVcJY4vGkK1Do5iZPHJoPVcwLF9zxvYQSxhQScJLZvOM42gZF3ASPDKkbR1NLkguKk 9FxDveLE3OLSvHS95PzcTYyQ0Pmyg3HxMatDjAIcjEo8vA/6MkOEWBPLiitzDzFKcDArifCu Xw0U4k1JrKxKLcqPLyrNSS0+xMjEwSnVwBj1gZvrnvhq9knhLs+vPDkU0NSqtt1uw5LzEvm7 pF+FzlytXTqnrVhvmTiH4oYP3i3vavpPF/6zPrF2zd6Nn/9c5dgYeumA9K/nS0xL5JVXqp1c dm/aqeKHTvu81xYrKNi93m3wIalW4ezxRJF/ZTp7NmydJvebxfrjw6dGG87f2PhxyvpTKxf6 KrEUZyQaajEXFScCAPEkz/j7AQAA 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, 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 exynos_drm_display is used by internal Exynos DRM framework for representing encoder:connector pair. As it should be mapped 1:1 to vidi private context it seems more reasonable to embed it directly in that context. As a result further code simplification will be possible. Moreover it will be possible to handle multiple vidi devices in the system. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c index f048a90..f58dd52 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c @@ -47,6 +47,7 @@ struct vidi_win_data { struct vidi_context { struct exynos_drm_manager manager; + struct exynos_drm_display display; struct drm_device *drm_dev; struct drm_crtc *crtc; struct drm_encoder *encoder; @@ -554,11 +555,6 @@ static struct exynos_drm_display_ops vidi_display_ops = { .create_connector = vidi_create_connector, }; -static struct exynos_drm_display vidi_display = { - .type = EXYNOS_DISPLAY_TYPE_VIDI, - .ops = &vidi_display_ops, -}; - static int vidi_subdrv_probe(struct drm_device *drm_dev, struct device *dev) { struct vidi_context *ctx = dev_get_drvdata(dev); @@ -573,7 +569,7 @@ static int vidi_subdrv_probe(struct drm_device *drm_dev, struct device *dev) return ret; } - ret = exynos_drm_create_enc_conn(drm_dev, &vidi_display); + ret = exynos_drm_create_enc_conn(drm_dev, &ctx->display); if (ret) { crtc->funcs->destroy(crtc); DRM_ERROR("failed to create encoder and connector.\n"); @@ -595,11 +591,13 @@ static int vidi_probe(struct platform_device *pdev) ctx->manager.type = EXYNOS_DISPLAY_TYPE_VIDI; ctx->manager.ops = &vidi_manager_ops; + ctx->display.type = EXYNOS_DISPLAY_TYPE_VIDI; + ctx->display.ops = &vidi_display_ops; ctx->default_win = 0; INIT_WORK(&ctx->work, vidi_fake_vblank_handler); - vidi_display.ctx = ctx; + ctx->display.ctx = ctx; mutex_init(&ctx->lock);