[PATCH i-g-t 00/12] lib/igt_kms: Rewrite property handling to better match atomic.

Maarten Lankhorst
2017-10-11T10:11:26Z

The future is atomic!

Currently when we add new properties, each one requires new API to be added,
even though the core wouldn't have to know anything about it. This can easily
be fixed by making everything a property, and having the core functions handle
some properties like fb and position separately.

Even with this in place it still makes sense to allow direct control of
properties, so add some new API to allow this manipulation. How powerful it is
can be seen in kms_atomic, which can finally be rewritten to use the new api.

We also extend the legacy paths to handle custom properties, so any tests
aren't required to use the atomic api.

Maarten Lankhorst (12):
lib/igt_kms: Rework connector properties to be more atomic, v2.
lib/igt_kms: Rework plane properties to be more atomic, v5.
lib/igt_kms: Rework pipe properties to be more atomic, v7.
lib/igt_kms: Allow setting any plane property through the universal
path
lib/igt_kms: Allow setting any output property through the !atomic
paths
lib/igt_kms: Export property blob functions for output/pipe/plane
lib/igt_kms: Unexport broadcast rgb API.
lib/igt_kms: Add igt_$obj_has_prop functions
lib/igt_kms: Add igt_$obj_get_prop functions
tests/kms_color: Rework tests slightly to work better with new atomic
api
lib/igt_kms: Remove igt_pipe_get_property
tests/kms_atomic: Convert/rewrite tests to use igt_kms framework

lib/igt_kms.c | 878 ++++++++++---------
lib/igt_kms.h | 266 +++---
tests/chamelium.c | 3 -
tests/kms_atomic.c | 1668 ++++++++++++-------------------------
tests/kms_atomic_interruptible.c | 24 +-
tests/kms_atomic_transition.c | 2 +-
tests/kms_color.c | 229 ++---
tests/kms_crtc_background_color.c | 2 +-
tests/kms_panel_fitting.c | 2 +-
tests/kms_rotation_crc.c | 10 +-
10 files changed, 1278 insertions(+), 1806 deletions(-)