diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2014-08-20 13:02:58 +0200 |
---|---|---|
committer | Thomas Hellstrom <thellstrom@vmware.com> | 2014-08-25 11:50:07 +0200 |
commit | f5d8c8f1fe2de727018600f471b6a8829fe492ad (patch) | |
tree | a7cd878857325dfec96c19d167888aec9d069122 | |
parent | b1697434348799b0808a6c9e9a899394075b980c (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.c | 5 |
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); |