diff options
Diffstat (limited to 'include/uapi/drm/drm.h')
| -rw-r--r-- | include/uapi/drm/drm.h | 57 | 
1 files changed, 45 insertions, 12 deletions
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index ece867889cc..9abbeb924cb 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h @@ -181,7 +181,6 @@ enum drm_map_type {  	_DRM_AGP = 3,		  /**< AGP/GART */  	_DRM_SCATTER_GATHER = 4,  /**< Scatter/gather memory for PCI DMA */  	_DRM_CONSISTENT = 5,	  /**< Consistent memory for PCI DMA */ -	_DRM_GEM = 6,		  /**< GEM object (obsolete) */  };  /** @@ -611,12 +610,56 @@ struct drm_gem_open {  	__u64 size;  }; +#define DRM_CAP_DUMB_BUFFER		0x1 +#define DRM_CAP_VBLANK_HIGH_CRTC	0x2 +#define DRM_CAP_DUMB_PREFERRED_DEPTH	0x3 +#define DRM_CAP_DUMB_PREFER_SHADOW	0x4 +#define DRM_CAP_PRIME			0x5 +#define  DRM_PRIME_CAP_IMPORT		0x1 +#define  DRM_PRIME_CAP_EXPORT		0x2 +#define DRM_CAP_TIMESTAMP_MONOTONIC	0x6 +#define DRM_CAP_ASYNC_PAGE_FLIP		0x7 +/* + * The CURSOR_WIDTH and CURSOR_HEIGHT capabilities return a valid widthxheight + * combination for the hardware cursor. The intention is that a hardware + * agnostic userspace can query a cursor plane size to use. + * + * Note that the cross-driver contract is to merely return a valid size; + * drivers are free to attach another meaning on top, eg. i915 returns the + * maximum plane size. + */ +#define DRM_CAP_CURSOR_WIDTH		0x8 +#define DRM_CAP_CURSOR_HEIGHT		0x9 +  /** DRM_IOCTL_GET_CAP ioctl argument type */  struct drm_get_cap {  	__u64 capability;  	__u64 value;  }; +/** + * DRM_CLIENT_CAP_STEREO_3D + * + * if set to 1, the DRM core will expose the stereo 3D capabilities of the + * monitor by advertising the supported 3D layouts in the flags of struct + * drm_mode_modeinfo. + */ +#define DRM_CLIENT_CAP_STEREO_3D	1 + +/** + * DRM_CLIENT_CAP_UNIVERSAL_PLANES + * + * If set to 1, the DRM core will expose all planes (overlay, primary, and + * cursor) to userspace. + */ +#define DRM_CLIENT_CAP_UNIVERSAL_PLANES  2 + +/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ +struct drm_set_client_cap { +	__u64 capability; +	__u64 value; +}; +  #define DRM_CLOEXEC O_CLOEXEC  struct drm_prime_handle {  	__u32 handle; @@ -649,6 +692,7 @@ struct drm_prime_handle {  #define DRM_IOCTL_GEM_FLINK		DRM_IOWR(0x0a, struct drm_gem_flink)  #define DRM_IOCTL_GEM_OPEN		DRM_IOWR(0x0b, struct drm_gem_open)  #define DRM_IOCTL_GET_CAP		DRM_IOWR(0x0c, struct drm_get_cap) +#define DRM_IOCTL_SET_CLIENT_CAP	DRM_IOW( 0x0d, struct drm_set_client_cap)  #define DRM_IOCTL_SET_UNIQUE		DRM_IOW( 0x10, struct drm_unique)  #define DRM_IOCTL_AUTH_MAGIC		DRM_IOW( 0x11, struct drm_auth) @@ -774,17 +818,6 @@ struct drm_event_vblank {  	__u32 reserved;  }; -#define DRM_CAP_DUMB_BUFFER 0x1 -#define DRM_CAP_VBLANK_HIGH_CRTC 0x2 -#define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 -#define DRM_CAP_DUMB_PREFER_SHADOW 0x4 -#define DRM_CAP_PRIME 0x5 -#define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 -#define DRM_CAP_ASYNC_PAGE_FLIP 0x7 - -#define DRM_PRIME_CAP_IMPORT 0x1 -#define DRM_PRIME_CAP_EXPORT 0x2 -  /* typedef area */  #ifndef __KERNEL__  typedef struct drm_clip_rect drm_clip_rect_t;  | 
