From patchwork Thu Apr 3 08:36:31 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Inki Dae X-Patchwork-Id: 3931911 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 B96D2BF540 for ; Thu, 3 Apr 2014 08:36:44 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2975820328 for ; Thu, 3 Apr 2014 08:36:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 065B520320 for ; Thu, 3 Apr 2014 08:36:39 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7594A6ECEB; Thu, 3 Apr 2014 01:36:37 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 81CEF6E88E for ; Thu, 3 Apr 2014 01:36:35 -0700 (PDT) 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 <0N3G007EH58XU290@mailout1.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 03 Apr 2014 17:36:33 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.114]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id BC.99.10364.09D1D335; Thu, 03 Apr 2014 17:36:32 +0900 (KST) X-AuditID: cbfee690-b7f266d00000287c-b5-533d1d9008f5 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 4D.8B.29263.09D1D335; Thu, 03 Apr 2014 17:36:32 +0900 (KST) Received: from daeinki-desktop.10.32.193.11 ([10.252.75.62]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N3G005QP58VUTJ0@mmp1.samsung.com>; Thu, 03 Apr 2014 17:36:31 +0900 (KST) From: Inki Dae To: airlied@linux.ie, dri-devel@lists.freedesktop.org Subject: [PATCH v3] drm/exynos: add super device support Date: Thu, 03 Apr 2014 17:36:31 +0900 Message-id: <1396514191-13054-1-git-send-email-inki.dae@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1396355882-17010-2-git-send-email-inki.dae@samsung.com> References: <1396355882-17010-2-git-send-email-inki.dae@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFLMWRmVeSWpSXmKPExsWyRsSkSHeCrG2wQW+7kcWtdedYLXrPnWSy uPL1PZvFpPsTWCzONr1ht7i74SyjA5vH7IaLLB7bvz1g9bjffZzJo2/LKsYAligum5TUnMyy 1CJ9uwSujJcHBAu+/2WqePg5pIFx2l6mLkZODgkBE4nr0/dB2WISF+6tZ+ti5OIQEljKKDGn bSobTNH6pnvMEIlFjBI/Pm9mhXC6mSSWff/FDFLFJqAqMXHFfbAOEQFTiY5JS1m6GDk4mAVy JK5u4AcJCwtYSDRce8EKYrMAle/cO5kdpIRXwEXi4XJZEFNCQEFiziQbkApOAVeJ972XwAYK AVX8XjyfFeKcfnaJ/ctiIKYISHybfIgFolVWYtMBZogSSYmDK26wTGAUXsDIsIpRNLUguaA4 Kb3IRK84Mbe4NC9dLzk/dxMjMJxP/3s2YQfjvQPWhxiTgcZNZJYSTc4HxkNeSbyhsZmRhamJ qbGRuaUZacJK4rxqj5KChATSE0tSs1NTC1KL4otKc1KLDzEycXBKNTBO/tVQXstaJrHNnZvh 5JIZfuGzuyzL7xyYwp2V2DBxZ9i/On2BdBlbV8sCiyWzzjanyq/w/m7QfGbtnhaWtrqbxyaw u7mYBkZ+4ZJhdFzE8U+5jLemyfRykkbwY6nvPd+FHqbJfWb6dqLkdvYKnSb9zvAWpwVPkrbr O0+OVmgy//WrfulDayWW4oxEQy3mouJEACMWjK99AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBIsWRmVeSWpSXmKPExsVy+t9jAd0JsrbBBmceyVjcWneO1aL33Ekm iytf37NZTLo/gcXibNMbdou7G84yOrB5zG64yOKx/dsDVo/73ceZPPq2rGIMYIlqYLTJSE1M SS1SSM1Lzk/JzEu3VfIOjneONzUzMNQ1tLQwV1LIS8xNtVVy8QnQdcvMAVqvpFCWmFMKFApI LC5W0rfDNCE0xE3XAqYxQtc3JAiux8gADSSsYcx4eUCw4PtfpoqHn0MaGKftZepi5OSQEDCR WN90jxnCFpO4cG89WxcjF4eQwCJGiR+fN7NCON1MEsu+/wKrYhNQlZi44j4biC0iYCrRMWkp SxcjBwezQI7E1Q38IGFhAQuJhmsvWEFsFqDynXsns4OU8Aq4SDxcLgtiSggoSMyZZANSwSng KvG+9xLYQCGgit+L57NOYORdwMiwilE0tSC5oDgpPddQrzgxt7g0L10vOT93EyM4Xp5J7WBc 2WBxiFGAg1GJh9dCyiZYiDWxrLgy9xCjBAezkgjvxS9AId6UxMqq1KL8+KLSnNTiQ4zJQDdN ZJYSTc4HxnJeSbyhsYmZkaWRuaGFkbE5acJK4rwHWq0DhQTSE0tSs1NTC1KLYLYwcXBKNTAq 2nGHZ21/Nr2vQD4y/Z1LnVW4zKk/1ovUOYMuclYsfD2xd370/OMK6TVbzr87XfhVeuq9ygtp WeUi/1RypWP4DNcI1DW+2vO+JzHt3dYPO2qrjyZdjTHXnjLHjZW98Ee+6ZbUhX0/WTRlVM9t OJX//v2d+9F3Gnita4r8gz/4JKqWNpWYcCixFGckGmoxFxUnAgAxo3332wIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: a.hajda@samsung.com, kyungmin.park@samsung.com 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, RP_MATCHES_RCVD, UNPARSEABLE_RELAY, URIBL_SC_SURBL 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 adds super device support to bind sub drivers using device tree. For this, you should add a super device node to each machine dt files like belows, In case of using MIPI-DSI, display-subsystem { compatible = "samsung,exynos-display-subsystem"; ports = <&fimd>, <&dsi>; }; In case of using DisplayPort, display-subsystem { compatible = "samsung,exynos-display-subsystem"; ports = <&fimd>, <&dp>; }; In case of using Parallel panel, display-subsystem { compatible = "samsung,exynos-display-subsystem"; ports = <&fimd>; }; And if you don't add connector device node to ports property, default parallel panel driver, exynos_drm_dpi module, will be used. ports property can have the following device nodes, fimd, mixer, Image Enhancer, MIPI-DSI, eDP, LVDS Bridge, or HDMI With this patch, we can resolve the probing order issue without some global lists. So this patch also removes the unnecessary lists and stuff related to these lists. Previous RFC patch, http://www.spinics.net/lists/dri-devel/msg54671.html Changelog since RFC patch: - Register sub drivers and probe them at load(). In case of non sub drivers, sub driver probe is needed. - Enable runtime pm at fimd_probe() instead of fimd_bind(). runtime pm should be enabled before iommu device is attached to fimd device. - Do not return an error with component_master_add fail. - Remove super device support from mipi dsi driver which was in RFC. - Add super device support to parallel driver. Changelog v2: - Add super device support to mipi dsi driver. - Bind fimd driver only in case that a drm_panel for parallel panel driver is added to panel_list of drm_panel module. - Change super node name to 'display-subsystem' . 'exynos-drm' is specific to Linux so change it to generic name. - Change propery name of super node to 'ports' . crtcs and connectors propery names are also specific to Linux so change them to generic name. Changlog v3: - Do not probe/remove dpi module if fimd node has no port node. Signed-off-by: Inki Dae Signed-off-by: Kyungmin Park --- drivers/gpu/drm/exynos/exynos_dp_core.c | 45 ++++--- drivers/gpu/drm/exynos/exynos_drm_core.c | 216 +++++------------------------- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 17 +++ drivers/gpu/drm/exynos/exynos_drm_crtc.h | 4 + drivers/gpu/drm/exynos/exynos_drm_dpi.c | 16 ++- drivers/gpu/drm/exynos/exynos_drm_drv.c | 202 +++++++++++++++------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 73 +++++----- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 38 +++++- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 87 +++++++++--- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 61 +++++++-- drivers/gpu/drm/exynos/exynos_hdmi.c | 45 ++++--- drivers/gpu/drm/exynos/exynos_mixer.c | 54 ++++++-- 12 files changed, 451 insertions(+), 407 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c index a59bca9..cb9aa58 100644 --- a/drivers/gpu/drm/exynos/exynos_dp_core.c +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include