[arch-commits] Commit in xf86-video-vmware/repos (4 files)
Jan de Groot
jgc at archlinux.org
Sun Jun 7 13:41:22 UTC 2009
Date: Sunday, June 7, 2009 @ 09:41:22
Author: jgc
Revision: 41844
Merged revisions 40943 via svnmerge from
svn+ssh://svn.archlinux.org/srv/svn-packages/xf86-video-vmware/trunk
........
r40943 | jgc | 2009-06-01 14:40:06 +0200 (Mon, 01 Jun 2009) | 1 line
upgpkg: xf86-video-vmware 10.16.6-1
........
Added:
xf86-video-vmware/repos/extra-i686/hibernate-fix-black-screen.patch
(from rev 40943, xf86-video-vmware/trunk/hibernate-fix-black-screen.patch)
Modified:
xf86-video-vmware/repos/extra-i686/ (properties)
xf86-video-vmware/repos/extra-i686/PKGBUILD
Deleted:
xf86-video-vmware/repos/extra-i686/manpage.patch
----------------------------------+
PKGBUILD | 16 ++++---
hibernate-fix-black-screen.patch | 76 +++++++++++++++++++++++++++++++++++++
manpage.patch | 20 ---------
3 files changed, 85 insertions(+), 27 deletions(-)
Property changes on: xf86-video-vmware/repos/extra-i686
___________________________________________________________________
Modified: svnmerge-integrated
- /xf86-video-vmware/trunk:1-36859
+ /xf86-video-vmware/trunk:1-41843
Modified: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD 2009-06-07 13:39:21 UTC (rev 41843)
+++ extra-i686/PKGBUILD 2009-06-07 13:41:22 UTC (rev 41844)
@@ -2,25 +2,27 @@
# Maintainer: Alexander Baldeck <alexander at archlinux.org>
# Contributor: Jan de Groot <jgc at archlinux.org>
pkgname=xf86-video-vmware
-pkgver=10.16.5
-pkgrel=3
+pkgver=10.16.6
+pkgrel=1
pkgdesc="X.org vmware video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.6.0' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto')
-conflicts=('xorg-server<1.6.0')
+makedepends=('pkgconfig' 'xorg-server>=1.6.1' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto')
+conflicts=('xorg-server<1.6.1')
groups=('xorg-video-drivers')
options=('!libtool')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
- manpage.patch LICENSE)
-md5sums=('6d78c82ea7c2bb0fcb587d7bb4e8f60a' '44de7fe73cf6261d489246bd4f8f0a6c'\
+ hibernate-fix-black-screen.patch
+ LICENSE)
+md5sums=('f376ebb4709ff29731e410586e6457f3'
+ 'c1f5154db2b46205e4fdb99c50154c6f'
'f846374287a2bae21570ae8de883fb4d')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 -i "${srcdir}/manpage.patch" || return 1
+ patch -Np1 -i "${srcdir}/hibernate-fix-black-screen.patch" || return 1
./configure --prefix=/usr || return 1
make || return 1
make DESTDIR="${pkgdir}" install || return 1
Copied: xf86-video-vmware/repos/extra-i686/hibernate-fix-black-screen.patch (from rev 40943, xf86-video-vmware/trunk/hibernate-fix-black-screen.patch)
===================================================================
--- extra-i686/hibernate-fix-black-screen.patch (rev 0)
+++ extra-i686/hibernate-fix-black-screen.patch 2009-06-07 13:41:22 UTC (rev 41844)
@@ -0,0 +1,76 @@
+From d10841493c4707f23f928d7580bc5bddb51d22a6 Mon Sep 17 00:00:00 2001
+From: Bob Long <blong at vmware.com>
+Date: Fri, 22 May 2009 22:48:55 +0000
+Subject: Fix black screen after resume from hibernate.
+
+The root cause for the black screen and system lock up is
+caused by not recovering the SVGA ID register after hibernation.
+Incorrect ID register value will invalidate the FIFO memory start
+register, and driver will not retrieve correct FIFO memory start
+address and the busy read of svga FIFO sync register will lock up
+the whole system.
+
+Currently SVGA Xorg driver does not have a kernel module to handle
+the power management event, but Xorg will call driver provided
+LeaveVT before shutting down system and call EnterVT after resuming
+system from hibernation, so these two callback functions are good
+entry points to save and restore the ID register value. This patch
+saves the ID register value in LeaveVT and restores the value to
+SVGA ID register in EnterVT.
+---
+diff --git a/src/vmware.c b/src/vmware.c
+index ef2dedb..069cf2c 100644
+--- a/src/vmware.c
++++ b/src/vmware.c
+@@ -652,6 +652,7 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
+ "No supported VMware SVGA found (read ID 0x%08x).\n", id);
+ return FALSE;
+ }
++ pVMWARE->suspensionSavedRegId = id;
+
+ #if !XSERVER_LIBPCIACCESS
+ pVMWARE->PciTag = pciTag(pVMWARE->PciInfo->bus, pVMWARE->PciInfo->device,
+@@ -1820,7 +1821,13 @@ VMWAREEnterVT(int scrnIndex, int flags)
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ VMWAREPtr pVMWARE = VMWAREPTR(pScrn);
+
+- if (!pVMWARE->SavedReg.svga_fifo_enabled) {
++ /*
++ * After system resumes from hiberation, EnterVT will be called and this
++ * is a good place to restore the SVGA ID register.
++ */
++ vmwareWriteReg(pVMWARE, SVGA_REG_ID, pVMWARE->suspensionSavedRegId);
++
++ if (!pVMWARE->SavedReg.svga_fifo_enabled) {
+ VMWAREInitFIFO(pScrn);
+ }
+
+@@ -1831,6 +1838,14 @@ static void
+ VMWARELeaveVT(int scrnIndex, int flags)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++ VMWAREPtr pVMWARE = VMWAREPTR(pScrn);
++
++ /*
++ * Before shutting down system for hibneration, LeaveVT will be called,
++ * we save the ID register value here and later restore it in EnterVT.
++ */
++ pVMWARE->suspensionSavedRegId = vmwareReadReg(pVMWARE, SVGA_REG_ID);
++
+ VMWARERestore(pScrn);
+ }
+
+diff --git a/src/vmware.h b/src/vmware.h
+index 57872b2..b906ff2 100644
+--- a/src/vmware.h
++++ b/src/vmware.h
+@@ -102,6 +102,7 @@ typedef struct {
+
+ VMWARERegRec SavedReg;
+ VMWARERegRec ModeReg;
++ CARD32 suspensionSavedRegId;
+
+ DisplayModePtr dynModes[NUM_DYN_MODES];
+
+--
+cgit v0.8.2
Deleted: extra-i686/manpage.patch
===================================================================
--- extra-i686/manpage.patch 2009-06-07 13:39:21 UTC (rev 41843)
+++ extra-i686/manpage.patch 2009-06-07 13:41:22 UTC (rev 41844)
@@ -1,20 +0,0 @@
-From 3c223e8f7b03e2d7f8c31faeeeeb37030c461176 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <alan.coopersmith at sun.com>
-Date: Sat, 10 Jan 2009 00:39:07 +0000
-Subject: Remove xorgconfig & xorgcfg from See Also list in man page
-
----
-diff --git a/man/vmware.man b/man/vmware.man
-index 65f0d94..fd12717 100644
---- a/man/vmware.man
-+++ b/man/vmware.man
-@@ -38,6 +38,6 @@ and will not be overridden at runtime.
- The format is "Width1xHeight1+Xoffset1+Yoffset1;Width2xHeight2+Xoffset2+Yoffset2"
- and so on. Negative offsets are not supported.
- .SH "SEE ALSO"
--__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
-+__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
- .SH AUTHORS
- Copyright (c) 1999-2007 VMware, Inc.
---
-cgit v0.8.2
More information about the arch-commits
mailing list