[GIT PULL] imx-drm: PRE/PRG and separate alpha support, deferred plane disabling

Philipp Zabel p.zabel at pengutronix.de
Fri Mar 17 09:30:46 UTC 2017


Hi Dave,

this tag contains support for the Prefetch Resolve Engine/Gasket that
was bolted onto the IPU on i.MX6QP to improve memory read bandwidth
utilization and eventually allow direct scanout from tiled GPU
renderbuffers.
Also we stop busy waiting in the atomic plane disable and crtc disable
paths, which would cause wait_for_vblank timeouts.
Support for RGBA formats with the alpha channel on a separate plane,
allows to save memory bandwidth by skipping burst reads on the RGB plane
if all alpha components of a burst are zero.
Then there are a few fixes and cleanups, like using a helper in plane
atomic_check, allowing to move the overlay plane without enforcing a
modeset, and removing an unused structure definition.

regards
Philipp

The following changes since commit 9c233760a65cec0c98df7b62bc5185d8889e5fc7:

  Merge tag 'drm-misc-next-2017-03-12' of git://anongit.freedesktop.org/git/drm-misc into drm-next (2017-03-15 11:32:01 +1000)

are available in the git repository at:

  git://git.pengutronix.de/git/pza/linux.git tags/imx-drm-next-2017-03-17

for you to fetch changes up to 7d5ed2920d15a8583084f7ca689a30277ef9af55:

  drm/imx: Remove unneeded definition for structure imx_drm_component (2017-03-16 10:14:52 +0100)

----------------------------------------------------------------
imx-drm PRE/PRG support, deferred plane disabling, separate alpha support

- Initial support for the Prefetch Resolve Engine/Gasket on i.MX6QP,
  improving linear scanout buffer memory bandwidth utilization. This
  will in the future grow reordering support and allow direct scanout
  of Vivante tiled renderbuffers from the GPU.
- Deferred plane disabling gets rid of some busy waiting in the atomic
  plane disable and crtc disable paths that lead to wait_for_vblank
  timeouts.
- Add support for RGBA formats with a separate alpha plane, that can
  reduce memory bandwidth utilization for mostly transparent overlay
  planes by skipping color reads for completely transparent regions.
- Allow moving an active overlay plane without enforcing a modeset.
- Add 8-bit and 16-bit bayer formats to ipu_cpmem_set_image.
- Set the base address in ipu_cpmem_set_image even for invalid formats
  to increase robustness against errors.
- Use drm_plane_helper_check_state in plane atomic_check.
- Some cleanup.

----------------------------------------------------------------
Liu Ying (1):
      drm/imx: Remove unneeded definition for structure imx_drm_component

Lucas Stach (10):
      gpu: ipu-v3: remove IRQ dance on DC channel disable
      gpu: ipu-v3: add DT binding for the Prefetch Resolve Engine
      gpu: ipu-v3: add driver for Prefetch Resolve Engine
      gpu: ipu-v3: add DT binding for the Prefetch Resolve Gasket
      gpu: ipu-v3: add driver for Prefetch Resolve Gasket
      gpu: ipu-v3: document valid IPUv3 compatibles and extend for i.MX6 QuadPlus
      gpu: ipu-v3: hook up PRG unit
      gpu: ipu-v3: only set non-zero AXI ID for IC when PRG is absent
      drm/imx: enable/disable PRG on CRTC enable/disable
      drm/imx: use PRG/PRE when possible

Philipp Zabel (11):
      drm/imx: ipuv3-plane: use drm_plane_helper_check_state, clipped coordinates
      drm/imx: ipuv3-plane: update overlay plane position also without modeset
      gpu: ipu-cpmem: set image base address even for incorrect formats
      gpu: ipu-cpmem: add bayer formats to ipu_cpmem_set_image
      gpu: ipu-v3: add unsynchronised DP channel disabling
      drm/imx: don't wait for vblank and stop calling cleanup_planes in commit_tail
      drm/imx: add deferred plane disabling
      drm: add RGB formats with separate alpha plane
      gpu: ipu-v3: add support for separate alpha channels
      drm/imx: extend drm_plane_state_to_eba for separate channel support
      drm/imx: ipuv3-plane: add support for separate alpha planes

 .../bindings/display/imx/fsl-imx-drm.txt           |  59 ++-
 drivers/gpu/drm/drm_fourcc.c                       |   8 +
 drivers/gpu/drm/imx/imx-drm-core.c                 |  30 +-
 drivers/gpu/drm/imx/imx-drm.h                      |   3 +
 drivers/gpu/drm/imx/ipuv3-crtc.c                   |  24 +-
 drivers/gpu/drm/imx/ipuv3-plane.c                  | 344 ++++++++++++++---
 drivers/gpu/drm/imx/ipuv3-plane.h                  |   6 +
 drivers/gpu/ipu-v3/Makefile                        |   2 +-
 drivers/gpu/ipu-v3/ipu-common.c                    |  43 ++-
 drivers/gpu/ipu-v3/ipu-cpmem.c                     |  78 +++-
 drivers/gpu/ipu-v3/ipu-dc.c                        |  61 +--
 drivers/gpu/ipu-v3/ipu-dp.c                        |  15 +-
 drivers/gpu/ipu-v3/ipu-image-convert.c             |   7 +-
 drivers/gpu/ipu-v3/ipu-pre.c                       | 289 ++++++++++++++
 drivers/gpu/ipu-v3/ipu-prg.c                       | 424 +++++++++++++++++++++
 drivers/gpu/ipu-v3/ipu-prv.h                       |  27 +-
 include/uapi/drm/drm_fourcc.h                      |  14 +
 include/video/imx-ipu-v3.h                         |  39 +-
 18 files changed, 1325 insertions(+), 148 deletions(-)
 create mode 100644 drivers/gpu/ipu-v3/ipu-pre.c
 create mode 100644 drivers/gpu/ipu-v3/ipu-prg.c



More information about the dri-devel mailing list