aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
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 /drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
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 'drivers/gpu/drm/vmwgfx/vmwgfx_drv.c')
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_drv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 13afddc1f034..82f5c8b12844 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -103,6 +103,9 @@
103#define DRM_IOCTL_VMW_PRESENT_READBACK \ 103#define DRM_IOCTL_VMW_PRESENT_READBACK \
104 DRM_IOW(DRM_COMMAND_BASE + DRM_VMW_PRESENT_READBACK, \ 104 DRM_IOW(DRM_COMMAND_BASE + DRM_VMW_PRESENT_READBACK, \
105 struct drm_vmw_present_readback_arg) 105 struct drm_vmw_present_readback_arg)
106#define DRM_IOCTL_VMW_UPDATE_LAYOUT \
107 DRM_IOW(DRM_COMMAND_BASE + DRM_VMW_UPDATE_LAYOUT, \
108 struct drm_vmw_update_layout_arg)
106 109
107/** 110/**
108 * The core DRM version of this macro doesn't account for 111 * The core DRM version of this macro doesn't account for
@@ -165,6 +168,9 @@ static struct drm_ioctl_desc vmw_ioctls[] = {
165 VMW_IOCTL_DEF(VMW_PRESENT_READBACK, 168 VMW_IOCTL_DEF(VMW_PRESENT_READBACK,
166 vmw_present_readback_ioctl, 169 vmw_present_readback_ioctl,
167 DRM_MASTER | DRM_AUTH | DRM_UNLOCKED), 170 DRM_MASTER | DRM_AUTH | DRM_UNLOCKED),
171 VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT,
172 vmw_kms_update_layout_ioctl,
173 DRM_MASTER | DRM_UNLOCKED),
168}; 174};
169 175
170static struct pci_device_id vmw_pci_id_list[] = { 176static struct pci_device_id vmw_pci_id_list[] = {