From patchwork Wed Sep 25 23:55:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 11161739 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 98FE576 for ; Wed, 25 Sep 2019 23:56:05 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 80AC2206B7 for ; Wed, 25 Sep 2019 23:56:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 80AC2206B7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 844A06EC26; Wed, 25 Sep 2019 23:56:04 +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 AC4486E069 for ; Wed, 25 Sep 2019 23:56:02 +0000 (UTC) Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B1D8B33E; Thu, 26 Sep 2019 01:55:59 +0200 (CEST) From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Subject: [PATCH v9 0/4] Xilinx ZynqMP DisplayPort Subsystem DRM/KMS driver Date: Thu, 26 Sep 2019 02:55:40 +0300 Message-Id: <20190925235544.11524-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1569455760; bh=0NljumWRKG2MlG9kmKh1YQ38LKEBwZQDTlU4RwTfclE=; h=From:To:Cc:Subject:Date:From; b=aZqvzHfDqT5/SmmkGvQTZUfBUGpVPn7Wc1jK1A/SqXgf0kwySxFIWbxZHzhmPOJEx RVb5Eff30VqPKcSi6gV36IWbV5pr/z8wyO1LfLC1rltLgUmJWVnSb7k7D96pLFif+M p1rh10dmGZGoSOjOqUzQ1YeD+giFuh0hDa0AAuiI= 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: Michal Simek , Hyun Kwon , Satish Kumar Nagireddy Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hello, Here's a new version of the Xilinx ZynqMP DisplayPort Subsystem driver. I've taken over v8 of the series ([1]) from Hyun and addressed all the review comments I had posted, plus quite a few additional issues (Daniel mentioned in a private conversation that this should teach me to be less picky during review, but I don't agree - yet :-))). This new version brings a lot of changes. After a rebase on top of v5.3, the driver architecture has been reworked extensively, dropping the xlnx drm helper layer. This decision was taken due to the difficulty of creating the right level of abstraction with a single user. The task was made even more difficult by the fact that the xlnx drm helper layer was meant to support display pipeline implemented fully or partly in the FPGA programmable logic (PL), while this driver only supports the DisplayPort Subsystem hard IP in the processing system (PS). The helper layer will likely be brought back in the future when drivers for the PL will be upstreamed. Other features were also dropped, mostly because they were only partly implemented. This includes TPG support, audio, live input (from the PL) and async updates. They will likely be implemented in the future, as well as color keying that was completely missing from v8. Please see patch 2/4 for a more detailed changelog. The series depends on currently out-of-tree DMA engine and PHY drivers that have been posted to the corresponding mailing lists but not merged yet. We are figuring out a plan to get those drivers (and their DT bindings and DT integration) upstreamed. For this reason only patch 1/4 and 2/4 are candidate for upstreaming, the DT integration in 3/4 and 4/4 depends on the DMA engine and PHY. In the meantime, a branch that contains this series on top fo the required dependencies is available at git://linuxtv.org/pinchartl/media.git drm/dpsub/next If anyone is interested, the full history of the changes between v8 and v9 is available at git://linuxtv.org/pinchartl/media.git drm/dpsub/history/v5.3 [1] https://lists.freedesktop.org/archives/dri-devel/2018-July/182477.html Hyun Kwon (2): dt-bindings: display: xlnx: Add ZynqMP DP subsystem bindings drm: xlnx: DRM/KMS driver for Xilinx ZynqMP DisplayPort Subsystem Laurent Pinchart (2): arm64: dts: zynqmp: Add DisplayPort subsystem arm64: dts: zynqmp: zcu106-revA: Wire up the DisplayPort subsystem .../display/xlnx/xlnx,zynqmp-dpsub.yaml | 153 ++ MAINTAINERS | 9 + arch/arm64/boot/dts/xilinx/zynqmp-clk.dtsi | 4 + .../boot/dts/xilinx/zynqmp-zcu106-revA.dts | 16 + arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 21 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/xlnx/Kconfig | 13 + drivers/gpu/drm/xlnx/Makefile | 2 + drivers/gpu/drm/xlnx/zynqmp_disp.c | 1678 +++++++++++++++++ drivers/gpu/drm/xlnx/zynqmp_disp.h | 43 + drivers/gpu/drm/xlnx/zynqmp_disp_regs.h | 201 ++ drivers/gpu/drm/xlnx/zynqmp_dp.c | 1677 ++++++++++++++++ drivers/gpu/drm/xlnx/zynqmp_dp.h | 29 + drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 331 ++++ drivers/gpu/drm/xlnx/zynqmp_dpsub.h | 48 + 16 files changed, 4228 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.yaml create mode 100644 drivers/gpu/drm/xlnx/Kconfig create mode 100644 drivers/gpu/drm/xlnx/Makefile create mode 100644 drivers/gpu/drm/xlnx/zynqmp_disp.c create mode 100644 drivers/gpu/drm/xlnx/zynqmp_disp.h create mode 100644 drivers/gpu/drm/xlnx/zynqmp_disp_regs.h create mode 100644 drivers/gpu/drm/xlnx/zynqmp_dp.c create mode 100644 drivers/gpu/drm/xlnx/zynqmp_dp.h create mode 100644 drivers/gpu/drm/xlnx/zynqmp_dpsub.c create mode 100644 drivers/gpu/drm/xlnx/zynqmp_dpsub.h