On Tue, Jan 31, 2017 at 05:03:12PM +0100, Noralf Trønnes wrote: > 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 The series: Acked-by: Thierry Reding