Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756980AbcK2KsJ (ORCPT ); Tue, 29 Nov 2016 05:48:09 -0500 Received: from mail-wj0-f171.google.com ([209.85.210.171]:33936 "EHLO mail-wj0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754011AbcK2KsA (ORCPT ); Tue, 29 Nov 2016 05:48:00 -0500 From: Neil Armstrong To: airlied@linux.ie, khilman@baylibre.com, carlo@caione.org Cc: Neil Armstrong , dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, victor.wan@amlogic.com, jerry.cao@amlogic.com, Xing.Xu@amlogic.com, laurent.pinchart@ideasonboard.com, daniel@ffwll.ch Subject: [PATCH 0/4] drm: Add support for the Amlogic Video Processing Unit Date: Tue, 29 Nov 2016 11:47:45 +0100 Message-Id: <1480416469-9655-1-git-send-email-narmstrong@baylibre.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5678 Lines: 118 This a repost of the previous RFC at [1] with fixes, the following patches will be sent via a PULL Request once the Amlogic maintainer acks and takes the DT patches to avoid merges conflicts. The Amlogic Meson SoCs embeds a Video Processing Unit able to output at least a Composite/CVBS Video with embedded VDAC and an HDMI Link with Embedded HDMI Transceiver. Thus, the current driver does not support HDMI yet. The Video Processig Unit is composed of multiple modules like the Video Input Unit and the Video Post Processing that can be associated to a CRTC with Planes management. The last Unit is the Venc that embeds at least 3 Encoders, ENCI for Interlace Video used by CVBS or HDMI, ENCP for Progressive Video used by the HDMI Transceiver and ENCL for LCD Display. The LCD Display is not planned to be supported on the Meson GX Family. This driver is a DRM/KMS driver using the following DRM components : - GEM-CMA - PRIME-CMA - Atomic Modesetting - FBDev-CMA For the following SoCs : - GXBB Family (S905) - GXL Family (S905X, S905D) - GXM Family (S912) The current driver only supports the CVBS PAL/NTSC output modes, but the CRTC/Planes management should support bigger modes. But Advanced Colorspace Conversion, Scaling and HDMI Modes will be added in a second time. The Device Tree bindings makes use of the endpoints video interface definitions to connect to the optional CVBS and in the future the HDMI Connector nodes. The driver has been tested with Xorg modesetting driver and Weston DRM backend. Changes since RFC at [1] : - Add maintainers entry - Move all Plane and CRTC code from backend to corresponding DRM code - Keep only init and common code in backend source files - Move the CVBS encoder out of the CVBS DT node, only keep the connector - Various cleanups using DRM helpers - Cleanup of copyright headers - Fixup of bindings documentation [1] http://lkml.kernel.org/r/1480089791-12517-1-git-send-email-narmstrong@baylibre.com Neil Armstrong (4): drm: Add support for Amlogic Meson Graphic Controller ARM64: dts: meson-gx: Add Graphic Controller nodes dt-bindings: display: add Amlogic Meson DRM Bindings MAINTAINERS: add entry for Amlogic DRM drivers .../bindings/display/meson/meson-drm.txt | 134 ++ MAINTAINERS | 9 + arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 46 + .../boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 4 + arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | 4 + arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 8 + .../boot/dts/amlogic/meson-gxl-nexbox-a95x.dts | 4 + arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 8 + .../arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | 4 + arch/arm64/boot/dts/amlogic/meson-gxm.dtsi | 8 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/meson/Kconfig | 9 + drivers/gpu/drm/meson/Makefile | 5 + drivers/gpu/drm/meson/meson_canvas.c | 68 + drivers/gpu/drm/meson/meson_canvas.h | 42 + drivers/gpu/drm/meson/meson_crtc.c | 208 +++ drivers/gpu/drm/meson/meson_crtc.h | 32 + drivers/gpu/drm/meson/meson_cvbs.c | 177 +++ drivers/gpu/drm/meson/meson_drv.c | 385 ++++++ drivers/gpu/drm/meson/meson_drv.h | 61 + drivers/gpu/drm/meson/meson_plane.c | 230 ++++ drivers/gpu/drm/meson/meson_plane.h | 30 + drivers/gpu/drm/meson/meson_registers.h | 1395 ++++++++++++++++++++ drivers/gpu/drm/meson/meson_vclk.c | 167 +++ drivers/gpu/drm/meson/meson_vclk.h | 34 + drivers/gpu/drm/meson/meson_venc.c | 254 ++++ drivers/gpu/drm/meson/meson_venc.h | 72 + drivers/gpu/drm/meson/meson_venc_cvbs.c | 187 +++ drivers/gpu/drm/meson/meson_venc_cvbs.h | 41 + drivers/gpu/drm/meson/meson_viu.c | 331 +++++ drivers/gpu/drm/meson/meson_viu.h | 64 + drivers/gpu/drm/meson/meson_vpp.c | 162 +++ drivers/gpu/drm/meson/meson_vpp.h | 35 + 34 files changed, 4221 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/meson/meson-drm.txt create mode 100644 drivers/gpu/drm/meson/Kconfig create mode 100644 drivers/gpu/drm/meson/Makefile create mode 100644 drivers/gpu/drm/meson/meson_canvas.c create mode 100644 drivers/gpu/drm/meson/meson_canvas.h create mode 100644 drivers/gpu/drm/meson/meson_crtc.c create mode 100644 drivers/gpu/drm/meson/meson_crtc.h create mode 100644 drivers/gpu/drm/meson/meson_cvbs.c create mode 100644 drivers/gpu/drm/meson/meson_drv.c create mode 100644 drivers/gpu/drm/meson/meson_drv.h create mode 100644 drivers/gpu/drm/meson/meson_plane.c create mode 100644 drivers/gpu/drm/meson/meson_plane.h create mode 100644 drivers/gpu/drm/meson/meson_registers.h create mode 100644 drivers/gpu/drm/meson/meson_vclk.c create mode 100644 drivers/gpu/drm/meson/meson_vclk.h create mode 100644 drivers/gpu/drm/meson/meson_venc.c create mode 100644 drivers/gpu/drm/meson/meson_venc.h create mode 100644 drivers/gpu/drm/meson/meson_venc_cvbs.c create mode 100644 drivers/gpu/drm/meson/meson_venc_cvbs.h create mode 100644 drivers/gpu/drm/meson/meson_viu.c create mode 100644 drivers/gpu/drm/meson/meson_viu.h create mode 100644 drivers/gpu/drm/meson/meson_vpp.c create mode 100644 drivers/gpu/drm/meson/meson_vpp.h -- 1.9.1