aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/drm/drm.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/drm/drm.h')
-rw-r--r--drivers/char/drm/drm.h33
1 files changed, 31 insertions, 2 deletions
diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h
index 5642ac43e0f..8db9041e306 100644
--- a/drivers/char/drm/drm.h
+++ b/drivers/char/drm/drm.h
@@ -117,6 +117,14 @@ typedef struct drm_clip_rect {
117} drm_clip_rect_t; 117} drm_clip_rect_t;
118 118
119/** 119/**
120 * Drawable information.
121 */
122typedef struct drm_drawable_info {
123 unsigned int num_rects;
124 drm_clip_rect_t *rects;
125} drm_drawable_info_t;
126
127/**
120 * Texture region, 128 * Texture region,
121 */ 129 */
122typedef struct drm_tex_region { 130typedef struct drm_tex_region {
@@ -348,7 +356,8 @@ typedef struct drm_buf_desc {
348 _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */ 356 _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */
349 _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */ 357 _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */
350 _DRM_SG_BUFFER = 0x04, /**< Scatter/gather memory buffer */ 358 _DRM_SG_BUFFER = 0x04, /**< Scatter/gather memory buffer */
351 _DRM_FB_BUFFER = 0x08 /**< Buffer is in frame buffer */ 359 _DRM_FB_BUFFER = 0x08, /**< Buffer is in frame buffer */
360 _DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */
352 } flags; 361 } flags;
353 unsigned long agp_start; /**< 362 unsigned long agp_start; /**<
354 * Start address of where the AGP buffers are 363 * Start address of where the AGP buffers are
@@ -444,6 +453,20 @@ typedef struct drm_draw {
444} drm_draw_t; 453} drm_draw_t;
445 454
446/** 455/**
456 * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
457 */
458typedef enum {
459 DRM_DRAWABLE_CLIPRECTS,
460} drm_drawable_info_type_t;
461
462typedef struct drm_update_draw {
463 drm_drawable_t handle;
464 unsigned int type;
465 unsigned int num;
466 unsigned long long data;
467} drm_update_draw_t;
468
469/**
447 * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. 470 * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
448 */ 471 */
449typedef struct drm_auth { 472typedef struct drm_auth {
@@ -465,10 +488,14 @@ typedef struct drm_irq_busid {
465typedef enum { 488typedef enum {
466 _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */ 489 _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
467 _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */ 490 _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
491 _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
492 _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
468 _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */ 493 _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */
469} drm_vblank_seq_type_t; 494} drm_vblank_seq_type_t;
470 495
471#define _DRM_VBLANK_FLAGS_MASK _DRM_VBLANK_SIGNAL 496#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
497#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \
498 _DRM_VBLANK_NEXTONMISS)
472 499
473struct drm_wait_vblank_request { 500struct drm_wait_vblank_request {
474 drm_vblank_seq_type_t type; 501 drm_vblank_seq_type_t type;
@@ -623,6 +650,8 @@ typedef struct drm_set_version {
623 650
624#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, drm_wait_vblank_t) 651#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, drm_wait_vblank_t)
625 652
653#define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, drm_update_draw_t)
654
626/** 655/**
627 * Device specific ioctls should only be in their respective headers 656 * Device specific ioctls should only be in their respective headers
628 * The device specific ioctl range is from 0x40 to 0x79. 657 * The device specific ioctl range is from 0x40 to 0x79.