From patchwork Mon Dec 10 01:06:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 10720459 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6985C112E for ; Mon, 10 Dec 2018 01:05:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 518E829D72 for ; Mon, 10 Dec 2018 01:05:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4539229D75; Mon, 10 Dec 2018 01:05:51 +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=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D843A29D72 for ; Mon, 10 Dec 2018 01:05:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 30AEF89F31; Mon, 10 Dec 2018 01:05:48 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE37B89F31 for ; Mon, 10 Dec 2018 01:05:46 +0000 (UTC) Received: from avalon.bb.dnainternet.fi (dfj612ybrt5fhg77mgycy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:2e86:4862:ef6a:2804]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2C049508; Mon, 10 Dec 2018 02:05:45 +0100 (CET) From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Subject: [PATCH 0/6] omapdrm: drm_bridge and drm_panel support Date: Mon, 10 Dec 2018 03:06:17 +0200 Message-Id: <20181210010623.3233-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tomi Valkeinen , Thierry Reding Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hello everybody, This patch series hooks up support for drm_bridge and drm_panel in the omapdrm driver. Before anyone rejoices too fast, I have to warn that removal of the omapdrm internal display drivers will still require a significant effort, even without considering DSI: - The omapdrm internal display drivers need to be ported to drm_bridge and drm_panel. This is the easy part of remaining transition, with 6 non-trivial panels, 2 simple bridges, and 2 connectors. - Several OMAP-based system split tasks associated with connectors across multiple hardware components. For instance an HDMI can have modes retrieval (from EDID) implemented by the HDMI encoder bridge, while hot-plug detection is implemented through a signal of the HDMI companion chip connected to a GPIO of the SoC. The drm_bridge infrastructure doesn't support this, and will need to be extended. - DRM doesn't have connector drivers to handle the connector DT nodes. While connectors are mostly passive components, the DDC and HPD signals can be wired directly from the connector to the SoC, in which case they're described in connector DT node. Several bridge drivers look up the DDC bus from the linked connector DT node, but this is a layering violation and should be implemented properly using connector drivers. These limitations aside, the series still removes three omapdrm-specific drivers. The series start with adding support for the OSD070T1718-19TS panel to the panel-simple driver (1/6). The panel is used by the AM57xx EVM. The corresponding DT node contains panel timings, and I still believe that we should parse those timings instead of hardcoding them in C code, but I've set that issue aside for now to move forward. The next two patches hook up support for drm_bridge (2/6) and drm_panel (3/6) in the omapdrm driver. This is the bulk of the changes from this series, please refer to individual patches for more information. The next patch (4/6) then adds a whitelist mechanism to control addition of the "omapdss," prefix to the compatible string of the omapdrm encoders, panels and connectors. This is used to selectively switch components from the omap_dss_device framework to drm_panel and drm_bridge. Finally the last two patches remove the omapdrm-specific TFP410 encoder and DVI connector drivers (5/6) and DPI panel driver (6/6), replaced respectively by the ti-tftp410 drm_bridge driver and the panel-simple drm_panel driver. The series is based on the "[PATCH 0/5] drm: ti-tfp410 improvements" series, itself based on top of the "[PATCH v2 0/2] Clarify display info PIXDATA bus flags" series. For convenience I have pushed the result to git://linuxtv.org/pinchartl/media.git omapdrm/bridge/next All patches have been tested on the OMAP3 Beagleboard-xM (for TFP410), the OMAP4 Pandaboard (for regressions) and the AM57xx EVM (for the panel). Laurent Pinchart (6): drm/panel: simple: Add OSD070T1718-19TS panel support drm/omap: Add support for drm_bridge drm/omap: Add support for drm_panel drm/omap: Whitelist DT nodes to fixup with omapdss, prefix drm/omap: Remove TFP410 and DVI connector drivers drm/omap: Remove panel-dpi driver drivers/gpu/drm/omapdrm/displays/Kconfig | 17 - drivers/gpu/drm/omapdrm/displays/Makefile | 3 - .../gpu/drm/omapdrm/displays/connector-dvi.c | 292 ------------------ .../gpu/drm/omapdrm/displays/encoder-tfp410.c | 141 --------- drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 197 ------------ drivers/gpu/drm/omapdrm/dss/base.c | 49 ++- .../gpu/drm/omapdrm/dss/omapdss-boot-init.c | 18 +- drivers/gpu/drm/omapdrm/dss/omapdss.h | 2 + drivers/gpu/drm/omapdrm/dss/output.c | 26 +- drivers/gpu/drm/omapdrm/omap_connector.c | 25 +- drivers/gpu/drm/omapdrm/omap_connector.h | 1 - drivers/gpu/drm/omapdrm/omap_crtc.c | 2 +- drivers/gpu/drm/omapdrm/omap_drv.c | 82 +++-- drivers/gpu/drm/omapdrm/omap_encoder.c | 109 ++++--- drivers/gpu/drm/panel/panel-simple.c | 29 ++ 15 files changed, 260 insertions(+), 733 deletions(-) delete mode 100644 drivers/gpu/drm/omapdrm/displays/connector-dvi.c delete mode 100644 drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c delete mode 100644 drivers/gpu/drm/omapdrm/displays/panel-dpi.c Reviewed-by: Sebastian Reichel