linux/Documentation/gpu
Brian Starkey 935774cd71 drm: Add writeback connector type
Writeback connectors represent writeback engines which can write the
CRTC output to a memory framebuffer. Add a writeback connector type and
related support functions.

Drivers should initialize a writeback connector with
drm_writeback_connector_init() which takes care of setting up all the
writeback-specific details on top of the normal functionality of
drm_connector_init().

Writeback connectors have a WRITEBACK_FB_ID property, used to set the
output framebuffer, and a WRITEBACK_PIXEL_FORMATS blob used to expose the
supported writeback formats to userspace.

When a framebuffer is attached to a writeback connector with the
WRITEBACK_FB_ID property, it is used only once (for the commit in which
it was included), and userspace can never read back the value of
WRITEBACK_FB_ID. WRITEBACK_FB_ID can only be set if the connector is
attached to a CRTC.

Changes since v1:
 - Added drm_writeback.c + documentation
 - Added helper to initialize writeback connector in one go
 - Added core checks
 - Squashed into a single commit
 - Dropped the client cap
 - Writeback framebuffers are no longer persistent

Changes since v2:
 Daniel Vetter:
 - Subclass drm_connector to drm_writeback_connector
 - Relax check to allow CRTC to be set without an FB
 - Add some writeback_ prefixes
 - Drop PIXEL_FORMATS_SIZE property, as it was unnecessary
 Gustavo Padovan:
 - Add drm_writeback_job to handle writeback signalling centrally

Changes since v3:
 - Rebased
 - Rename PIXEL_FORMATS -> WRITEBACK_PIXEL_FORMATS

Chances since v4:
 - Embed a drm_encoder inside the drm_writeback_connector to
   reduce the amount of boilerplate code required from the drivers
   that are using it.

Changes since v5:
 - Added Rob Clark's atomic_commit() vfunc to connector helper
   funcs, so that writeback jobs are committed from atomic helpers
 - Updated create_writeback_properties() signature to return an
   error code rather than a boolean false for failure.
 - Free writeback job with the connector state rather than when
   doing the cleanup_work()

Changes since v7:
 - fix extraneous use of out_fence that is only introduced in a
   subsequent patch.

Changes since v8:
 - whitespace changes pull from subsequent patch

Changes since v9:
 - Revert the v6 changes that free the writeback job in the connector
   state cleanup and return to doing it in the cleanup_work() function

Signed-off-by: Brian Starkey <brian.starkey@arm.com>
[rebased and fixed conflicts]
Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
[rebased and added atomic_commit() vfunc for writeback jobs]
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/229037/
2018-06-20 15:27:49 +01:00
..
bridge drm: bridge: dw-hdmi: Add Documentation on supported input formats 2017-04-04 17:48:21 +02:00
conf.py doc-rst: build PDF of 80211 and gpu sub-project 2016-10-26 17:25:17 -06:00
drivers.rst drm/v3d: Introduce a new DRM driver for Broadcom V3D V3.x+ 2018-05-03 16:26:30 -07:00
drm-internals.rst Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2017-06-27 09:18:17 -04:00
drm-kms-helpers.rst drm/doc: Move legacy kms helpers to the very end 2017-12-15 11:26:54 +01:00
drm-kms.rst drm: Add writeback connector type 2018-06-20 15:27:49 +01:00
drm-mm.rst drm/syncobj: Fix kerneldoc 2017-07-26 13:22:44 +02:00
drm-uapi.rst drm/doc: Document ioctl errno value patterns 2017-08-23 15:09:26 +02:00
i915.rst drm/i915: Move a bunch of workaround-related code to its own file 2018-04-11 22:47:01 +01:00
index.rst drm/doc: Put all driver docs into a separate chapter 2018-03-19 14:43:11 +01:00
introduction.rst drm: Document code of conduct 2017-05-05 11:48:17 +10:00
kms-properties.csv drm: content-type property for HDMI connector 2018-05-17 18:58:35 +03:00
meson.rst drm/meson: Add RST to bring together kerneldoc 2017-04-04 17:49:31 +02:00
pl111.rst drm/pl111: Initial drm/kms driver for pl111 2017-05-08 12:24:06 -07:00
tegra.rst drm/tegra: Add driver documentation 2017-06-15 13:58:56 +02:00
tinydrm.rst drm/tinydrm: Add MIPI DBI support 2017-02-18 18:04:59 +01:00
todo.rst drm/todo: Fallout from v3d review 2018-04-25 22:38:17 +02:00
tve200.rst drm/tve200: fix kernel-doc documentation comment include 2018-02-21 09:26:38 +02:00
vc4.rst drm/vc4: Add a paragraph at the top of vc4 docs introducing what it is. 2017-02-28 12:51:49 -08:00
vga-switcheroo.rst drm/doc: Fix vga_switcheroo xref 2016-08-24 13:11:08 +02:00
vgaarbiter.rst vgaarbiter: rst-ifiy and polish kerneldoc 2016-08-16 18:49:56 +02:00
xen-front.rst drm/xen-front: Remove CMA support 2018-04-18 10:18:27 +03:00