diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2011-10-25 17:35:53 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-11-02 04:30:31 -0400 |
commit | cd2b89e7e8c036903e7fa0c3dceca25e755fe78d (patch) | |
tree | 4ec5275d9650283de7b3be6d2e5eb0cd2e63cde6 /include | |
parent | bc1c4dc390c644106fa5b8d0fb44a473c4ba627c (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')
-rw-r--r-- | include/drm/vmwgfx_drm.h | 51 |
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 | |||
571 | struct 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 | */ | ||
784 | struct drm_vmw_update_layout_arg { | ||
785 | uint32_t num_outputs; | ||
786 | uint32_t pad64; | ||
787 | uint64_t rects; | ||
788 | }; | ||
789 | |||
791 | #endif | 790 | #endif |