[RFC PATCH v3 0/6] Introduce writeback connectors

From: Brian Starkey
Date: Fri Nov 25 2016 - 11:49:38 EST


Hi,

This is v3 of my series introducing a new connector type:
DRM_MODE_CONNECTOR_WRITEBACK
See v1 and v2 here: [1] [2]

Writeback connectors are used to expose the memory writeback engines
found in some display controllers, which can write a CRTC's
composition result to a memory buffer.
This is useful e.g. for testing, screen-recording, screenshots,
wireless display, display cloning, memory-to-memory composition.

Writeback connectors are given a WRITEBACK_FB_ID property (which acts
slightly differently to FB_ID, so gets a new name), as well as
a PIXEL_FORMATS blob to list the supported writeback formats, and
OUT_FENCE_PTR to be used for out-fences.

The changes since v2 are in the commit messages of each commit.

The main differences are:
- Subclass drm_connector as drm_writeback_connector
- Slight relaxation of core checks, to allow
(connector->crtc && !connector->fb)
- Dropped PIXEL_FORMATS_SIZE, which was redundant
- Reworked the event interface, drivers don't need to deal with the
fence directly
- Re-ordered the commits to introduce writeback out-fences up-front.

I've kept RFC on this series because the event reporting (introduction
of drm_writeback_job) is probably up for debate.

v4 will be accompanied by igt tests.

As always, I look forward to any comments.

Thanks,
Brian

[1] http://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1247574.html
[2] http://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1258017.html

---

Brian Starkey (5):
drm: Add writeback connector type
drm: writeback: Add out-fences for writeback connectors
drm: mali-dp: Rename malidp_input_format
drm: mali-dp: Add RGB writeback formats for DP550/DP650
drm: mali-dp: Add writeback connector

Liviu Dudau (1):
drm: mali-dp: Add support for writeback on DP550/DP650

Documentation/gpu/drm-kms.rst | 9 +
drivers/gpu/drm/Makefile | 2 +-
drivers/gpu/drm/arm/Makefile | 1 +
drivers/gpu/drm/arm/malidp_crtc.c | 21 +++
drivers/gpu/drm/arm/malidp_drv.c | 25 ++-
drivers/gpu/drm/arm/malidp_drv.h | 3 +
drivers/gpu/drm/arm/malidp_hw.c | 111 ++++++++----
drivers/gpu/drm/arm/malidp_hw.h | 27 ++-
drivers/gpu/drm/arm/malidp_mw.c | 278 ++++++++++++++++++++++++++++++
drivers/gpu/drm/arm/malidp_mw.h | 18 ++
drivers/gpu/drm/arm/malidp_planes.c | 8 +-
drivers/gpu/drm/arm/malidp_regs.h | 15 ++
drivers/gpu/drm/drm_atomic.c | 226 +++++++++++++++++++++++-
drivers/gpu/drm/drm_atomic_helper.c | 6 +
drivers/gpu/drm/drm_connector.c | 4 +-
drivers/gpu/drm/drm_writeback.c | 325 +++++++++++++++++++++++++++++++++++
include/drm/drm_atomic.h | 11 ++
include/drm/drm_connector.h | 13 ++
include/drm/drm_mode_config.h | 14 ++
include/drm/drm_writeback.h | 115 +++++++++++++
include/uapi/drm/drm_mode.h | 1 +
21 files changed, 1181 insertions(+), 52 deletions(-)
create mode 100644 drivers/gpu/drm/arm/malidp_mw.c
create mode 100644 drivers/gpu/drm/arm/malidp_mw.h
create mode 100644 drivers/gpu/drm/drm_writeback.c
create mode 100644 include/drm/drm_writeback.h

--
1.7.9.5