aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2011-10-25 17:35:53 -0400
committerDave Airlie <airlied@redhat.com>2011-11-02 04:30:31 -0400
commitcd2b89e7e8c036903e7fa0c3dceca25e755fe78d (patch)
tree4ec5275d9650283de7b3be6d2e5eb0cd2e63cde6 /include/drm
parentbc1c4dc390c644106fa5b8d0fb44a473c4ba627c (diff)
vmwgfx: Reinstate the update_layout ioctl
We need to redefine a connector as "connected" if it matches a window in the host preferred GUI layout. Otherwise "smart" window managers would turn on Xorg outputs that we don't want to be on. This reinstates the update_layout and adds the following information to the modesetting system. a) Connection status <-> Equivalent to real hardware connection status b) Preferred mode <-> Equivalent to real hardware reading EDID c) Host window position <-> Equivalent to a real hardware scanout address dynamic register. It should be noted that there is no assumption here about what should be displayed and where. Only how to access the host windows. This also bumps minor to signal availability of the new IOCTL. Based on code originally written by Jakob Bornecrantz Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/vmwgfx_drm.h51
1 files changed, 25 insertions, 26 deletions
diff --git a/include/drm/vmwgfx_drm.h b/include/drm/vmwgfx_drm.h
index cd7cd8162ed6..bcb0912afe7a 100644
--- a/include/drm/vmwgfx_drm.h
+++ b/include/drm/vmwgfx_drm.h
@@ -54,7 +54,7 @@
54#define DRM_VMW_FENCE_EVENT 17 54#define DRM_VMW_FENCE_EVENT 17
55#define DRM_VMW_PRESENT 18 55#define DRM_VMW_PRESENT 18
56#define DRM_VMW_PRESENT_READBACK 19 56#define DRM_VMW_PRESENT_READBACK 19
57 57#define DRM_VMW_UPDATE_LAYOUT 20
58 58
59/*************************************************************************/ 59/*************************************************************************/
60/** 60/**
@@ -552,31 +552,6 @@ struct drm_vmw_get_3d_cap_arg {
552 552
553/*************************************************************************/ 553/*************************************************************************/
554/** 554/**
555 * DRM_VMW_UPDATE_LAYOUT - Update layout
556 *
557 * Updates the preferred modes and connection status for connectors. The
558 * command conisits of one drm_vmw_update_layout_arg pointing out a array
559 * of num_outputs drm_vmw_rect's.
560 */
561
562/**
563 * struct drm_vmw_update_layout_arg
564 *
565 * @num_outputs: number of active
566 * @rects: pointer to array of drm_vmw_rect
567 *
568 * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl.
569 */
570
571struct drm_vmw_update_layout_arg {
572 uint32_t num_outputs;
573 uint32_t pad64;
574 uint64_t rects;
575};
576
577
578/*************************************************************************/
579/**
580 * DRM_VMW_FENCE_WAIT 555 * DRM_VMW_FENCE_WAIT
581 * 556 *
582 * Waits for a fence object to signal. The wait is interruptible, so that 557 * Waits for a fence object to signal. The wait is interruptible, so that
@@ -788,4 +763,28 @@ struct drm_vmw_present_readback_arg {
788 uint64_t clips_ptr; 763 uint64_t clips_ptr;
789 uint64_t fence_rep; 764 uint64_t fence_rep;
790}; 765};
766
767/*************************************************************************/
768/**
769 * DRM_VMW_UPDATE_LAYOUT - Update layout
770 *
771 * Updates the preferred modes and connection status for connectors. The
772 * command consists of one drm_vmw_update_layout_arg pointing to an array
773 * of num_outputs drm_vmw_rect's.
774 */
775
776/**
777 * struct drm_vmw_update_layout_arg
778 *
779 * @num_outputs: number of active connectors
780 * @rects: pointer to array of drm_vmw_rect cast to an uint64_t
781 *
782 * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl.
783 */
784struct drm_vmw_update_layout_arg {
785 uint32_t num_outputs;
786 uint32_t pad64;
787 uint64_t rects;
788};
789
791#endif 790#endif