diff options
Diffstat (limited to 'drivers/char/drm/drm.h')
-rw-r--r-- | drivers/char/drm/drm.h | 33 |
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 | */ | ||
122 | typedef 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 | */ |
122 | typedef struct drm_tex_region { | 130 | typedef 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 | */ | ||
458 | typedef enum { | ||
459 | DRM_DRAWABLE_CLIPRECTS, | ||
460 | } drm_drawable_info_type_t; | ||
461 | |||
462 | typedef 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 | */ |
449 | typedef struct drm_auth { | 472 | typedef struct drm_auth { |
@@ -465,10 +488,14 @@ typedef struct drm_irq_busid { | |||
465 | typedef enum { | 488 | typedef 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 | ||
473 | struct drm_wait_vblank_request { | 500 | struct 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. |