[PATCH 00/11] Atomic Properties (v2)
Rob Clark
robdclark at gmail.com
Thu Dec 18 13:01:45 PST 2014
Welcome to v2 of the atomic-properties series. This is the part where
we start exposing atomic to userspace. This patchset applies on top
of the topic/atomic-core branch. A few patches from v1 of the patchset
have already been picked up on topic/atomic-core (and are not re-sent).
The first step here is to, for drivers supporting atomic, expose all
the core plane/CRTC/connector state as properties. Once this is in
place, all that remains is the atomic ioctl to allow userspace to
atomically set a bunch of properties on a bunch of objects (last
patch).
All of the core properties have their set/get/check's handled by the
drm_atomic core, so drivers needn't be bothered about that.
NOTE: that there is one notable omission here. The 'MODE' property
on the CRTC. Without this, you can do atomic pageflip but not yet
atomic modeset. I am debating between three paths for handling MODE:
1) Add back blob property support to atomic ioctl
2) Add ioctls to create/destroy blob properties, and then simply
pass blob property id to atomic ioctl.
3) Stick our head in the sands and expose mode as a bunch of descrete
properties.
Of these, at the moment I prefer #2, since it is more consistent with
how userspace currently reads blob properties, and it avoids making the
atomic ioctl function even more gnarly.
The whole patchset can also be found at:
http://cgit.freedesktop.org/~robclark/linux/log/?h=atomic-properties
git://people.freedesktop.org/~robclark/linux atomic-properties
Compared to v1 of this patchset:
1) few bits of comments/re-arranging
2) drop modeconfig->funcs vfunc for set_property, instead use a
driver feature flag so core can figure out whether to take
atomic property or legacy property path
3) add DRM_CLIENT_CAP_ATOMIC to hide atomic properties from legacy
userspace
4) add drm.atomic moduleparam to (for now) hide the atomic ioctl
while it is still experimental.
5) misc bits of refactoring, and addressing other review comments.
Rob Clark (11):
drm: add atomic_set_property wrappers
drm: add atomic_get_property
drm: tweak getconnector locking
drm: refactor getproperties/getconnector
drm: add atomic properties
drm/atomic: atomic_check functions
drm: small property creation cleanup
drm/atomic: atomic plane properties
drm/atomic: atomic connector properties
drm/msm: atomic property support
drm: Atomic modeset ioctl
Documentation/DocBook/drm.tmpl | 91 ++-
drivers/gpu/drm/drm_atomic.c | 757 ++++++++++++++++++++-
drivers/gpu/drm/drm_atomic_helper.c | 16 +-
drivers/gpu/drm/drm_crtc.c | 274 +++++---
drivers/gpu/drm/drm_drv.c | 4 +
drivers/gpu/drm/drm_ioctl.c | 11 +
drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 1 +
drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 1 +
drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c | 1 +
drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 1 +
drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 1 +
drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 2 +
drivers/gpu/drm/msm/msm_drv.c | 1 +
include/drm/drmP.h | 4 +
include/drm/drm_atomic.h | 21 +
include/drm/drm_crtc.h | 43 +-
include/uapi/drm/drm.h | 8 +
include/uapi/drm/drm_mode.h | 30 +
18 files changed, 1148 insertions(+), 119 deletions(-)
--
2.1.0
More information about the dri-devel
mailing list