[arch-commits] Commit in xf86-video-vmware/repos (4 files)

Jan de Groot jgc at archlinux.org
Mon Jun 1 08:40:22 EDT 2009


    Date: Monday, June 1, 2009 @ 08:40:21
  Author: jgc
Revision: 40944

Merged revisions 40943 via svnmerge from 
svn+ssh://svn.archlinux.org/srv/svn-packages/xf86-video-vmware/trunk

........
  r40943 | jgc | 2009-06-01 12:40:06 +0000 (Mon, 01 Jun 2009) | 1 line
  
  upgpkg: xf86-video-vmware 10.16.6-1
........

Added:
  xf86-video-vmware/repos/extra-x86_64/hibernate-fix-black-screen.patch
    (from rev 40943, xf86-video-vmware/trunk/hibernate-fix-black-screen.patch)
Modified:
  xf86-video-vmware/repos/extra-x86_64/	(properties)
  xf86-video-vmware/repos/extra-x86_64/PKGBUILD
Deleted:
  xf86-video-vmware/repos/extra-x86_64/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-x86_64
___________________________________________________________________
Modified: svnmerge-integrated
   - /xf86-video-vmware/trunk:1-36831
   + /xf86-video-vmware/trunk:1-40943

Modified: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2009-06-01 12:40:06 UTC (rev 40943)
+++ extra-x86_64/PKGBUILD	2009-06-01 12:40:21 UTC (rev 40944)
@@ -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-x86_64/hibernate-fix-black-screen.patch (from rev 40943, xf86-video-vmware/trunk/hibernate-fix-black-screen.patch)
===================================================================
--- extra-x86_64/hibernate-fix-black-screen.patch	                        (rev 0)
+++ extra-x86_64/hibernate-fix-black-screen.patch	2009-06-01 12:40:21 UTC (rev 40944)
@@ -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-x86_64/manpage.patch
===================================================================
--- extra-x86_64/manpage.patch	2009-06-01 12:40:06 UTC (rev 40943)
+++ extra-x86_64/manpage.patch	2009-06-01 12:40:21 UTC (rev 40944)
@@ -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