From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751209AbdAaQEK (ORCPT ); Tue, 31 Jan 2017 11:04:10 -0500 Received: from smtp.domeneshop.no ([194.63.252.55]:49524 "EHLO smtp.domeneshop.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751242AbdAaQDq (ORCPT ); Tue, 31 Jan 2017 11:03:46 -0500 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Cc: robh@kernel.org, thomas.petazzoni@free-electrons.com, linux-kernel@vger.kernel.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v3 0/7] drm: Add support for tiny LCD displays Date: Tue, 31 Jan 2017 17:03:12 +0100 Message-Id: <20170131160319.9695-1-noralf@tronnes.org> X-Mailer: git-send-email 2.10.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org drm: Add support for tiny LCD displays This is an attempt at providing a DRM version of drivers/staging/fbtft. The tinydrm library provides a very simplified view of DRM in particular for tiny displays that has onboard video memory and is connected through a slow bus like SPI/I2C. The main change this time is adding 'rotation' as a common display Device Tree property. Noralf. Changes since version 2: - Remove fbdev after drm unregister, not before. - Added Documentation/devicetree/bindings/display/display.txt Changes since version 1: - Add tinydrm.rst - Set tdev->fbdev_cma=NULL on unregister (lastclose is called after that). - Remove some DRM_DEBUG*() - Write-combined memory has uncached reads, so speed up by copying/buffering one pixel line before conversion. Changes since RFC v2: - Rebased on new core helpers - Don't use drm_panel - Flush when the framebuffer is changed on the plane - Add devm_tinydrm_init() - Fix PRIME support, set vaddr - Use atomic helpers in suspend/resume - Add a tinydrm_connector with one display mode - Set mode_config.preferred_depth and use it for fbdev - Subclass tinydrm_device in drivers instead of bloating the structure - The PiTFT display uses a MI0283QT panel, write driver for that instead. - Drop homegrown lcdreg module, it ended up as a collection of special cases. - Add more documentation Changes since RFC v1: - Add fb_deferred_io support to drm_fb_helper and drm_fb_cma_helper, and use drm_fb_cma_helper instead. - Move display pipeline code to drm_simple_kms_helper. - Don't use (struct drm_driver *)->load(). - Make tinydrm more like a library, exporting the internals. - Move the struct drm_driver definition from the tinydrm module to the driver using a helper macro: TINYDRM_DRM_DRIVER. - Remove dirtyfb() async code. - Added support for partial display updates. Noralf Trønnes (7): drm: Add DRM support for tiny LCD displays drm/tinydrm: Add helper functions drm/tinydrm: Add MIPI DBI support of: Add vendor prefix for Multi-Inno dt-bindings: display: Add common rotation property dt-bindings: Add Multi-Inno MI0283QT binding drm/tinydrm: Add support for Multi-Inno MI0283QT display .../devicetree/bindings/display/display.txt | 4 + .../bindings/display/multi-inno,mi0283qt.txt | 27 + .../devicetree/bindings/vendor-prefixes.txt | 1 + Documentation/gpu/index.rst | 1 + Documentation/gpu/tinydrm.rst | 42 + MAINTAINERS | 6 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/tinydrm/Kconfig | 19 + drivers/gpu/drm/tinydrm/Makefile | 7 + drivers/gpu/drm/tinydrm/core/Makefile | 3 + drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 377 ++++++++ drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 462 +++++++++ drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c | 234 +++++ drivers/gpu/drm/tinydrm/mi0283qt.c | 279 ++++++ drivers/gpu/drm/tinydrm/mipi-dbi.c | 1005 ++++++++++++++++++++ include/drm/tinydrm/ili9341.h | 54 ++ include/drm/tinydrm/mipi-dbi.h | 107 +++ include/drm/tinydrm/tinydrm-helpers.h | 100 ++ include/drm/tinydrm/tinydrm.h | 115 +++ 20 files changed, 2846 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/display.txt create mode 100644 Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt create mode 100644 Documentation/gpu/tinydrm.rst create mode 100644 drivers/gpu/drm/tinydrm/Kconfig create mode 100644 drivers/gpu/drm/tinydrm/Makefile create mode 100644 drivers/gpu/drm/tinydrm/core/Makefile create mode 100644 drivers/gpu/drm/tinydrm/core/tinydrm-core.c create mode 100644 drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c create mode 100644 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c create mode 100644 drivers/gpu/drm/tinydrm/mi0283qt.c create mode 100644 drivers/gpu/drm/tinydrm/mipi-dbi.c create mode 100644 include/drm/tinydrm/ili9341.h create mode 100644 include/drm/tinydrm/mipi-dbi.h create mode 100644 include/drm/tinydrm/tinydrm-helpers.h create mode 100644 include/drm/tinydrm/tinydrm.h -- 2.10.2