summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2014-08-20 13:02:58 +0200
committerThomas Hellstrom <thellstrom@vmware.com>2014-08-25 11:50:07 +0200
commitf5d8c8f1fe2de727018600f471b6a8829fe492ad (patch)
treea7cd878857325dfec96c19d167888aec9d069122
parentb1697434348799b0808a6c9e9a899394075b980c (diff)
vmware: Clear the PITCHLOCK register if available before modeset
In some situations the fbdev driver may have set this register before legacy driver startup causing a weird-looking desktop. Make sure this register is cleared on each modeset. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
-rw-r--r--src/vmware.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vmware.c b/src/vmware.c
index 17434ab..12f12ed 100644
--- a/src/vmware.c
+++ b/src/vmware.c
@@ -375,7 +375,8 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
#ifdef ACCELERATE_OPS
pVMWARE->vmwareCapability = vmwareReadReg(pVMWARE, SVGA_REG_CAPABILITIES);
#else
- pVMWARE->vmwareCapability = 0;
+ pVMWARE->vmwareCapability = vmwareReadReg(pVMWARE, SVGA_REG_CAPABILITIES) &
+ SVGA_CAP_PITCHLOCK;
#endif
pVMWARE->bitsPerPixel = vmwareReadReg(pVMWARE,
@@ -858,6 +859,8 @@ VMWAREModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool rebuildPixmap)
return FALSE;
pScrn->vtSema = TRUE;
+ if (pVMWARE->vmwareCapability & SVGA_CAP_PITCHLOCK)
+ vmwareWriteReg(pVMWARE, SVGA_REG_PITCHLOCK, 0);
vmwareReg->svga_reg_enable = 1;
vmwareReg->svga_reg_width = max(mode->HDisplay, pScrn->virtualX);
vmwareReg->svga_reg_height = max(mode->VDisplay, pScrn->virtualY);