aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/drm/drm_mode.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/drm/drm_mode.h')
-rw-r--r--include/uapi/drm/drm_mode.h38
1 files changed, 34 insertions, 4 deletions
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 86574b0005ff..ca788e01dab2 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -272,6 +272,13 @@ struct drm_mode_get_connector {
272#define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1) 272#define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1)
273#define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2) 273#define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2)
274 274
275/* the PROP_ATOMIC flag is used to hide properties from userspace that
276 * is not aware of atomic properties. This is mostly to work around
277 * older userspace (DDX drivers) that read/write each prop they find,
278 * witout being aware that this could be triggering a lengthy modeset.
279 */
280#define DRM_MODE_PROP_ATOMIC 0x80000000
281
275struct drm_mode_property_enum { 282struct drm_mode_property_enum {
276 __u64 value; 283 __u64 value;
277 char name[DRM_PROP_NAME_LEN]; 284 char name[DRM_PROP_NAME_LEN];
@@ -338,7 +345,7 @@ struct drm_mode_fb_cmd2 {
338 345
339 /* 346 /*
340 * In case of planar formats, this ioctl allows up to 4 347 * In case of planar formats, this ioctl allows up to 4
341 * buffer objects with offets and pitches per plane. 348 * buffer objects with offsets and pitches per plane.
342 * The pitch and offset order is dictated by the fourcc, 349 * The pitch and offset order is dictated by the fourcc,
343 * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: 350 * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as:
344 * 351 *
@@ -346,9 +353,9 @@ struct drm_mode_fb_cmd2 {
346 * followed by an interleaved U/V plane containing 353 * followed by an interleaved U/V plane containing
347 * 8 bit 2x2 subsampled colour difference samples. 354 * 8 bit 2x2 subsampled colour difference samples.
348 * 355 *
349 * So it would consist of Y as offset[0] and UV as 356 * So it would consist of Y as offsets[0] and UV as
350 * offeset[1]. Note that offset[0] will generally 357 * offsets[1]. Note that offsets[0] will generally
351 * be 0. 358 * be 0 (but this is not required).
352 */ 359 */
353 __u32 handles[4]; 360 __u32 handles[4];
354 __u32 pitches[4]; /* pitch for each plane */ 361 __u32 pitches[4]; /* pitch for each plane */
@@ -519,4 +526,27 @@ struct drm_mode_destroy_dumb {
519 uint32_t handle; 526 uint32_t handle;
520}; 527};
521 528
529/* page-flip flags are valid, plus: */
530#define DRM_MODE_ATOMIC_TEST_ONLY 0x0100
531#define DRM_MODE_ATOMIC_NONBLOCK 0x0200
532#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
533
534#define DRM_MODE_ATOMIC_FLAGS (\
535 DRM_MODE_PAGE_FLIP_EVENT |\
536 DRM_MODE_PAGE_FLIP_ASYNC |\
537 DRM_MODE_ATOMIC_TEST_ONLY |\
538 DRM_MODE_ATOMIC_NONBLOCK |\
539 DRM_MODE_ATOMIC_ALLOW_MODESET)
540
541struct drm_mode_atomic {
542 __u32 flags;
543 __u32 count_objs;
544 __u64 objs_ptr;
545 __u64 count_props_ptr;
546 __u64 props_ptr;
547 __u64 prop_values_ptr;
548 __u64 reserved;
549 __u64 user_data;
550};
551
522#endif 552#endif