Now that we have core atomic helpers, let's expose that to userspace! 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 (RFC patch at the end). 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 Rob Clark (13): drm: allow property validation for refcnted props drm: store property instead of id in obj attachment drm: get rid of direct property value access drm: add atomic_set_property wrappers drm: add atomic_get_property drm: add atomic hook to read property plus helper drm: small property creation cleanup drm: tweak getconnector locking drm/atomic: atomic_check functions drm/atomic: atomic plane properties drm/atomic: atomic connector properties drm/msm: atomic property support RFC: drm: Atomic modeset ioctl Documentation/DocBook/drm.tmpl | 83 ++- drivers/gpu/drm/drm_atomic.c | 613 +++++++++++++++++++++ drivers/gpu/drm/drm_atomic_helper.c | 105 +++- drivers/gpu/drm/drm_crtc.c | 230 ++++++-- drivers/gpu/drm/drm_ioctl.c | 1 + 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/drm_atomic.h | 22 + include/drm/drm_atomic_helper.h | 2 + include/drm/drm_crtc.h | 50 +- include/uapi/drm/drm.h | 1 + include/uapi/drm/drm_mode.h | 21 + 17 files changed, 1063 insertions(+), 73 deletions(-) -- 2.1.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel