[PATCH v4 0/3] Add initial ZTE VOU DRM/KMS driver

Shawn Guo shawnguo at kernel.org
Mon Oct 31 02:17:22 PDT 2016


From: Shawn Guo <shawn.guo at linaro.org>

The series adds the initial ZTE VOU display controller DRM/KMS driver.
There are still some features to be added, like overlay plane, scaling,
and more output devices support.  But it's already useful with dual
CRTCs and HDMI display working.

Changes for v4:
 - Move the hardware setup done in zx_hdmi_hw_init() and clock enable
   into .enable hook of drm_encoder_helper_funcs.
 - Compare pipe to crtc->index instead of using our own index counter.
 - Save the pipe check in zx_vou_enable[disable]_vblank by putting frame
   interrupt bit into zx_crtc_bits.
 - Use DRM_DEV_* for log messages instead of old dev_* functions
 - Return directly in case of -ETIMEDOUT in zx_hdmi_i2c_read to simplify
   the code for error condition.
 - Shuffle things around to make the crtc and plane state check in
   zx_gl_plane_atomic_check a bit clearer
 - Move hardware register definitions into headers instead of disturbing
   C file reading.
 - Save the call to drm_connector_unregister(), so that
   drm_connector_cleanup can directly be used as drm_connector_funcs
   .destroy hook.
 - Move vblank notification from .atomic_begin hook to .atomic_flush,
   so that vblank event is sent to user space after planes are committed
   rather than before.

Changes for v3:
 - Rebase to v4.9-rc1
 - Update bindings doc to use 'ranges' for address translation between
   parent and child devices.
 - Call drm_dev_register() last in bind function and drm_dev_unregister()
   first in unbind, so that drm_connector_regiser() can be saved from
   HDMI driver.
 - Instead of using open-coded drm_do_get_edid(), add an I2C adapter for
   HDMI DDC read and use drm_get_edid().
 - Improve the plane .atomic_check implementation by calling helper
   function drm_plane_helper_check_state().
 - Rename zx_crtc.c to zx_vou.c to avoid the confusion that the file
   implements crtc instance.
 - Store vou pointer in zx_crtc, so that we do not need to embed the
   pointer in zx_drm_private.
 - Create zx_readl/zx_writel/zx_writel_mask for register access.
 - Define a few macro helpers to ease the register bit setting, like
   SYNC_WIDE, BACK_PORCH and FRONT_PORCH.
 - Define main/aux channel specific register offset and bits in zx_crtc
   to save the use of is_main check
 - Sort include headers alphabetically
 - Removing encoder pointer out of the structure and constify struct
   vou_inf
 - Add log message for error conditions
 - Make the function calls in teardown path asymmetrical
 - A few coding style improvements like defining macro for sub-module
   address and changing code to save indentation level
 - Add a MAINTAINERS entry for ZTE ZX DRM driver

Changes for v2:
 - Change device tree bindings to kill the virtual display-subsystem
   node make VOU the parent node.

Shawn Guo (3):
  dt-bindings: add bindings doc for ZTE VOU display controller
  drm: zte: add initial vou drm driver
  MAINTAINERS: add an entry for ZTE ZX DRM driver

 .../devicetree/bindings/display/zte,vou.txt        |  84 +++
 MAINTAINERS                                        |   7 +
 drivers/gpu/drm/Kconfig                            |   2 +
 drivers/gpu/drm/Makefile                           |   1 +
 drivers/gpu/drm/zte/Kconfig                        |   8 +
 drivers/gpu/drm/zte/Makefile                       |   7 +
 drivers/gpu/drm/zte/zx_drm_drv.c                   | 267 +++++++++
 drivers/gpu/drm/zte/zx_drm_drv.h                   |  36 ++
 drivers/gpu/drm/zte/zx_hdmi.c                      | 624 +++++++++++++++++++
 drivers/gpu/drm/zte/zx_hdmi_regs.h                 |  56 ++
 drivers/gpu/drm/zte/zx_plane.c                     | 299 ++++++++++
 drivers/gpu/drm/zte/zx_plane.h                     |  26 +
 drivers/gpu/drm/zte/zx_plane_regs.h                |  91 +++
 drivers/gpu/drm/zte/zx_vou.c                       | 661 +++++++++++++++++++++
 drivers/gpu/drm/zte/zx_vou.h                       |  46 ++
 drivers/gpu/drm/zte/zx_vou_regs.h                  | 157 +++++
 16 files changed, 2372 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/zte,vou.txt
 create mode 100644 drivers/gpu/drm/zte/Kconfig
 create mode 100644 drivers/gpu/drm/zte/Makefile
 create mode 100644 drivers/gpu/drm/zte/zx_drm_drv.c
 create mode 100644 drivers/gpu/drm/zte/zx_drm_drv.h
 create mode 100644 drivers/gpu/drm/zte/zx_hdmi.c
 create mode 100644 drivers/gpu/drm/zte/zx_hdmi_regs.h
 create mode 100644 drivers/gpu/drm/zte/zx_plane.c
 create mode 100644 drivers/gpu/drm/zte/zx_plane.h
 create mode 100644 drivers/gpu/drm/zte/zx_plane_regs.h
 create mode 100644 drivers/gpu/drm/zte/zx_vou.c
 create mode 100644 drivers/gpu/drm/zte/zx_vou.h
 create mode 100644 drivers/gpu/drm/zte/zx_vou_regs.h

-- 
1.9.1




More information about the linux-arm-kernel mailing list