.gitignore | 83 +++++++++-- ChangeLog | 183 +++++++++++++++++++++++++ Makefile.am | 11 + configure.ac | 19 +- debian/README.source | 2 debian/changelog | 43 +++++ debian/control | 11 - debian/rules | 16 -- debian/vmware.ids | 2 debian/xserver-xorg-video-vmware.install | 1 debian/xsfbs/xsfbs.mk | 35 +++- man/.gitignore | 1 man/Makefile.am | 41 ++--- src/Makefile.am | 55 ++++--- src/vmware.c | 45 +++--- src/vmware.h | 3 src/vmwarecurs.c | 53 ++++--- src/vmwaremodule.c | 224 +++++++++++++++++++++++++++++++ vmwarectrl/.gitignore | 2 19 files changed, 694 insertions(+), 136 deletions(-)
New commits: commit b630292c218e329d0cf5767dce18ad7bd8fa55a6 Author: Cyril Brulebois <[email protected]> Date: Sat Oct 16 22:05:34 2010 +0200 Upload to experimental. diff --git a/debian/changelog b/debian/changelog index fb755d7..ba92610 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -xserver-xorg-video-vmware (1:11.0.1-3) UNRELEASED; urgency=low +xserver-xorg-video-vmware (1:11.0.1-3) experimental; urgency=low * Build against Xserver 1.9.1 rc1. - -- Cyril Brulebois <[email protected]> Sat, 16 Oct 2010 22:04:51 +0200 + -- Cyril Brulebois <[email protected]> Sat, 16 Oct 2010 22:05:33 +0200 xserver-xorg-video-vmware (1:11.0.1-2) unstable; urgency=low commit 9ac8850624d5a6423378c2d4fdb3457afca25348 Author: Cyril Brulebois <[email protected]> Date: Sat Oct 16 22:04:55 2010 +0200 Build against Xserver 1.9.1 rc1. diff --git a/debian/changelog b/debian/changelog index 4142bcc..fb755d7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-vmware (1:11.0.1-3) UNRELEASED; urgency=low + + * Build against Xserver 1.9.1 rc1. + + -- Cyril Brulebois <[email protected]> Sat, 16 Oct 2010 22:04:51 +0200 + xserver-xorg-video-vmware (1:11.0.1-2) unstable; urgency=low [ Julien Cristau ] diff --git a/debian/control b/debian/control index 14b3c13..be5e567 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: David Nusinow <[email protected]>, Drew Parsons <[email protected] Build-Depends: debhelper (>= 5.0.0), pkg-config, - xserver-xorg-dev (>= 2:1.7.6.901), + xserver-xorg-dev (>= 2:1.9.0.901), x11proto-core-dev, x11proto-fonts-dev, x11proto-randr-dev, commit e639e9f3846b8ea4f4649db1c44374a708507c1f Author: Cyril Brulebois <[email protected]> Date: Tue Jul 13 17:57:49 2010 +0200 Upload to unstable. diff --git a/debian/changelog b/debian/changelog index 7c7dd70..4142bcc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xserver-xorg-video-vmware (1:11.0.1-2) UNRELEASED; urgency=low +xserver-xorg-video-vmware (1:11.0.1-2) unstable; urgency=low [ Julien Cristau ] * Update xsfbs, use new ${xviddriver:Depends} substvar. @@ -7,7 +7,7 @@ xserver-xorg-video-vmware (1:11.0.1-2) UNRELEASED; urgency=low * Cherry-pick e647511e4b9b924b0617171c56b3bb485674b3ff from upstream to stop crashing the server on Xorg -configure (Closes: #579910). - -- Julien Cristau <[email protected]> Sat, 15 May 2010 16:32:18 +0200 + -- Cyril Brulebois <[email protected]> Tue, 13 Jul 2010 17:57:43 +0200 xserver-xorg-video-vmware (1:11.0.1-1) unstable; urgency=low commit b814ecfbf640b238922703049d422b77193fdf48 Author: Cyril Brulebois <[email protected]> Date: Tue Jul 13 17:57:05 2010 +0200 Cherry-pick e647511e4b9b924b0617171c56b3bb485674b3ff from upstream to stop crashing the server on Xorg -configure (Closes: #579910). diff --git a/debian/changelog b/debian/changelog index 5c2c5aa..7c7dd70 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,12 @@ xserver-xorg-video-vmware (1:11.0.1-2) UNRELEASED; urgency=low + [ Julien Cristau ] * Update xsfbs, use new ${xviddriver:Depends} substvar. + [ Cyril Brulebois ] + * Cherry-pick e647511e4b9b924b0617171c56b3bb485674b3ff from upstream + to stop crashing the server on Xorg -configure (Closes: #579910). + -- Julien Cristau <[email protected]> Sat, 15 May 2010 16:32:18 +0200 xserver-xorg-video-vmware (1:11.0.1-1) unstable; urgency=low commit 1e3fd04865b03525e9c7947596f93a3c7cc64f4c Author: Julien Cristau <[email protected]> Date: Tue Jul 13 11:57:15 2010 +0100 Don't crash the server on Xorg -configure (cherry picked from commit e647511e4b9b924b0617171c56b3bb485674b3ff) diff --git a/src/vmwaremodule.c b/src/vmwaremodule.c index d6fcddb..0a9a38b 100644 --- a/src/vmwaremodule.c +++ b/src/vmwaremodule.c @@ -172,7 +172,8 @@ vmware_chain_module(pointer opts) matched = vmwlegacy_devices; } - for (i = 0; i < vmware_devices; i++) { + /* Xorg -configure returns 1 from xf86MatchDevice with NULL gdevs */ + for (i = 0; gdevs && i < vmware_devices; i++) { gdev = gdevs[i]; gdev->driver = driver_name; } commit 37aa2717f35c73d1cf5bb2b19fb82f97a6db135a Author: Julien Cristau <[email protected]> Date: Sat May 15 16:32:30 2010 +0200 Update xsfbs, use new ${xviddriver:Depends} substvar. diff --git a/debian/changelog b/debian/changelog index 552f1a5..5c2c5aa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-vmware (1:11.0.1-2) UNRELEASED; urgency=low + + * Update xsfbs, use new ${xviddriver:Depends} substvar. + + -- Julien Cristau <[email protected]> Sat, 15 May 2010 16:32:18 +0200 + xserver-xorg-video-vmware (1:11.0.1-1) unstable; urgency=low [ Julien Cristau ] diff --git a/debian/control b/debian/control index f74fba0..14b3c13 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: David Nusinow <[email protected]>, Drew Parsons <[email protected] Build-Depends: debhelper (>= 5.0.0), pkg-config, - xserver-xorg-dev (>= 2:1.7), + xserver-xorg-dev (>= 2:1.7.6.901), x11proto-core-dev, x11proto-fonts-dev, x11proto-randr-dev, @@ -24,7 +24,7 @@ Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-vmware. Package: xserver-xorg-video-vmware Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, ${xserver:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends}, ${xviddriver:Depends} Provides: ${xviddriver:Provides} Replaces: xserver-xorg (<< 6.8.2-35), xserver-xorg-driver-vmware Conflicts: xserver-xorg-driver-vmware commit b5bacc31ed5971398e7448c1ecfbae72ee98430d Author: Mikhail Gusarov <[email protected]> Date: Fri May 7 18:58:59 2010 +0700 Remove duplicate xorg.fd.o URL and confusing mailing list URL from debian/control diff --git a/debian/control b/debian/control index 900394c..f74fba0 100644 --- a/debian/control +++ b/debian/control @@ -34,7 +34,5 @@ Description: X.Org X server -- VMware display driver . More information about X.Org can be found at: <URL:http://www.X.org> - <URL:http://xorg.freedesktop.org> - <URL:http://lists.freedesktop.org/mailman/listinfo/xorg> . This package is built from the X.org xf86-video-vmware driver module. commit 81fc271788605b52e85c2d11635a0371fb44605e Author: Cyril Brulebois <[email protected]> Date: Sun May 2 02:14:45 2010 +0200 Add xorg-driver-{video,input} to Provides. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 77c4a39..3c59c20 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -261,8 +261,8 @@ INPUTDEP = $(shell cat /usr/share/xserver-xorg/xinputdep 2>/dev/null) # these two can be removed post-squeeze VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) -VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI) -INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI) +VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI), xorg-driver-video +INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI), xorg-driver-input ifeq ($(PACKAGE),) PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) commit b045afbd8277ad0c44e29d7c45802053c4335ccd Author: Julien Cristau <[email protected]> Date: Fri Apr 16 22:14:46 2010 +0200 Update serverabi rule for xserver 1.7.6.901 Add new variables ${xviddriver:Depends} and ${xinpdriver:Depends} for drivers. The ${xserver:Depends} variable is deprecated. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 351fea5..77c4a39 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -253,25 +253,33 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir # debian/*.prerm >$@ -SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null) +# Compute dependencies for drivers +# +VIDEODEP = $(shell cat /usr/share/xserver-xorg/videodrvdep 2>/dev/null) +INPUTDEP = $(shell cat /usr/share/xserver-xorg/xinputdep 2>/dev/null) + +# these two can be removed post-squeeze VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) -SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI) INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI) + ifeq ($(PACKAGE),) PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) endif .PHONY: serverabi serverabi: install -ifeq ($(SERVERMINVERS),) - @echo error: xserver-xorg-dev needs to be installed +ifeq ($(VIDEODEP),) + @echo 'error: xserver-xorg-dev >= 1.7.6.901 needs to be installed' @exit 1 else - echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars + echo "xviddriver:Depends=$(VIDEODEP)" >> debian/$(PACKAGE).substvars + echo "xinpdriver:Depends=$(INPUTDEP)" >> debian/$(PACKAGE).substvars + # the following is there for compatibility... echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars + echo "xserver:Depends=$(VIDEODEP), $(INPUTDEP)" >> debian/$(PACKAGE).substvars endif # vim:set noet ai sts=8 sw=8 tw=0: commit 8bd2e9b523da35493db1bd781d4ef6bfbbeb2eff Author: Julien Cristau <[email protected]> Date: Tue Apr 13 14:06:33 2010 +0200 xsfbs.mk: don't use a directory as a make target The timestamp on the directory gets updated each time a file is added in it, which causes useless rebuilds. diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index 5e16b10..351fea5 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -110,14 +110,15 @@ $(STAMP_DIR)/stampdir: .PHONY: prepare stampdir_targets+=prepare prepare: $(STAMP_DIR)/prepare -$(STAMP_DIR)/prepare: $(STAMP_DIR)/log $(STAMP_DIR)/genscripts +$(STAMP_DIR)/prepare: $(STAMP_DIR)/logdir $(STAMP_DIR)/genscripts >$@ -.PHONY: log -stampdir_targets+=log -log: $(STAMP_DIR)/log -$(STAMP_DIR)/log: $(STAMP_DIR)/stampdir +.PHONY: logdir +stampdir_targets+=logdir +logdir: $(STAMP_DIR)/logdir +$(STAMP_DIR)/logdir: $(STAMP_DIR)/stampdir mkdir -p $(STAMP_DIR)/log + >$@ # Apply all patches to the upstream source. .PHONY: patch @@ -145,7 +146,7 @@ $(STAMP_DIR)/patch: $(STAMP_DIR)/prepare # Revert all patches to the upstream source. .PHONY: unpatch -unpatch: $(STAMP_DIR)/log +unpatch: $(STAMP_DIR)/logdir rm -f $(STAMP_DIR)/patch @echo -n "Unapplying patches..."; \ if $(QUILT) applied >/dev/null 2>/dev/null; then \ commit da9258aefc7186ba692c516feb0aea7c6337b38c Author: Cyril Brulebois <[email protected]> Date: Tue Apr 6 05:38:33 2010 +0200 Upload to unstable. diff --git a/debian/changelog b/debian/changelog index fff40de..552f1a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xserver-xorg-video-vmware (1:11.0.1-1) UNRELEASED; urgency=low +xserver-xorg-video-vmware (1:11.0.1-1) unstable; urgency=low [ Julien Cristau ] * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no @@ -10,7 +10,7 @@ xserver-xorg-video-vmware (1:11.0.1-1) UNRELEASED; urgency=low driver. * Add myself to Uploaders. - -- Julien Cristau <[email protected]> Sat, 16 Jan 2010 16:47:32 +0000 + -- Cyril Brulebois <[email protected]> Tue, 06 Apr 2010 05:38:23 +0200 xserver-xorg-video-vmware (1:10.16.9-1) unstable; urgency=low commit 7fd746a42208f7d88bc09b22ee8aa196e3990e6e Author: Cyril Brulebois <[email protected]> Date: Tue Apr 6 05:38:13 2010 +0200 Add myself to Uploaders. diff --git a/debian/changelog b/debian/changelog index 5bb1241..fff40de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ xserver-xorg-video-vmware (1:11.0.1-1) UNRELEASED; urgency=low * New upsteam release. * Add libdrm-dev to Build-Depends, needed for the new chainloader driver. + * Add myself to Uploaders. -- Julien Cristau <[email protected]> Sat, 16 Jan 2010 16:47:32 +0000 diff --git a/debian/control b/debian/control index 461bb4a..900394c 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: xserver-xorg-video-vmware Section: x11 Priority: optional Maintainer: Debian X Strike Force <[email protected]> -Uploaders: David Nusinow <[email protected]>, Drew Parsons <[email protected]>, Brice Goglin <[email protected]> +Uploaders: David Nusinow <[email protected]>, Drew Parsons <[email protected]>, Brice Goglin <[email protected]>, Cyril Brulebois <[email protected]> Build-Depends: debhelper (>= 5.0.0), pkg-config, commit d6826b7295510169816c5a88cbd944c6257d86fc Author: Cyril Brulebois <[email protected]> Date: Tue Apr 6 05:35:08 2010 +0200 Update ChangeLog. diff --git a/ChangeLog b/ChangeLog index 98c69a9..a693fd6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,102 @@ +commit cc77a36048863640fb1fa9f82b5b0dbf41326872 +Author: Jakob Bornecrantz <[email protected]> +Date: Thu Mar 18 15:30:36 2010 +0100 + + Bump for 11.0.1 release. + +commit a5fb3698a033bfe7789641fd6719d8d4fb054201 +Author: Jakob Bornecrantz <[email protected]> +Date: Tue Mar 9 08:37:11 2010 +0000 + + Rework chainloader code to check for vmwgfx userspace driver as well + +commit bf18be6f458a4612b2ebdd8d2b5894f8884891e4 +Author: Roland Scheidegger <[email protected]> +Date: Tue Mar 9 16:10:25 2010 +0100 + + fix a cursor refcounting bug, leading to segfaults + + this is similar to what xf86_use_hw_cursor() does, which is replaced by + vmwareUseHWCursor (otherwise, the refcount could reach zero and hence the + cursor deallocated while xf86CursorEnableDisableFBAccess() could still bring + it back to life from the saved cursor). + It is probably insane to do refcounting here, but this needs a xserver fix, + and even if that's fixed this fix here shouldn't hurt (though would be + unnecessary). + +commit 257614ae9bea54d6a46e4477496500a84853ee37 +Author: Roland Scheidegger <[email protected]> +Date: Tue Mar 9 16:03:59 2010 +0100 + + make DEBUG_LOGGING compile + +commit 29f6a2dca3e680908e938767256c9b995653ca7f +Author: Jakob Bornecrantz <[email protected]> +Date: Sun Mar 7 15:02:39 2010 +0000 + + Print text about none fatal error message with Fatal in it + +commit 204504861a2847734a04bd976accb0c730733523 +Author: Jakob Bornecrantz <[email protected]> +Date: Fri Feb 26 16:27:17 2010 +0100 + + Don't hardcode the module version in the source + + As pointed out by Julien Cristau XORG_RELEASE_VERSION + gives us that info from configure.ac. + + Signed-off-by: Jakob Bornecrantz <[email protected]> + +commit 667263d9410bd0d5832cf08a2a28841fe6326b84 +Author: Jakob Bornecrantz <[email protected]> +Date: Thu Feb 18 14:11:32 2010 +0100 + + Bump major for new chainloading driver + +commit 048fe839f0d761aeba95c324f14bdc5488e9e634 +Author: Jakob Bornecrantz <[email protected]> +Date: Mon Feb 22 13:20:06 2010 +0100 + + Link to drm but on for the vmware chainloader driver + +commit 30964ffa31f4fdbffe563b7d7d20bfbf1ed22969 +Author: Jakob Bornecrantz <[email protected]> +Date: Thu Feb 18 15:20:31 2010 +0100 + + Make sure that modinfo strings are unique + +commit 0f2b02d72e36dc6390c09d6adba13e4101bf3df8 +Author: Jakob Bornecrantz <[email protected]> +Date: Thu Feb 11 23:18:37 2010 +0100 + + Add modinfo for vmware_drv.so + +commit c4f5bf8ea45b80c2ac4a5eec65ff58f148fb2807 +Author: Jakob Bornecrantz <[email protected]> +Date: Thu Feb 11 22:04:53 2010 +0100 + + Add a chain loading module to load new vmwgfx driver if kernel module is loaded + +commit 0d9d1724dbe113dcc02736a8ca80ab540057cb5e +Author: Alan Coopersmith <[email protected]> +Date: Fri Jan 15 14:13:42 2010 -0800 + + Update Sun license notices to current X.Org standard form + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit e0d370ae5f307d96e9dd9384cc0ea66a0f6c06c1 +Author: Gaetan Nadon <[email protected]> +Date: Tue Dec 15 22:01:02 2009 -0500 + + configure.ac: remove unused sdkdir=$(pkg-config...) statement + + The sdkdir variable isn't use, so remove the statement. + + Acked-by: Dan Nicholson <[email protected]> + + Signed-off-by: Gaetan Nadon <[email protected]> + commit 991830e39c34d0a4530a5c5023ec92cf0d7395b0 Author: Michel Dänzer <[email protected]> Date: Tue Dec 29 17:53:35 2009 +0100 commit 3ab954c4e75d043874f25b369f76a5469f47ece4 Author: Cyril Brulebois <[email protected]> Date: Tue Apr 6 05:34:21 2010 +0200 Add libdrm-dev to Build-Depends, needed for the new chainloader driver. diff --git a/debian/changelog b/debian/changelog index 6901912..5bb1241 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,8 @@ xserver-xorg-video-vmware (1:11.0.1-1) UNRELEASED; urgency=low [ Cyril Brulebois ] * New upsteam release. + * Add libdrm-dev to Build-Depends, needed for the new chainloader + driver. -- Julien Cristau <[email protected]> Sat, 16 Jan 2010 16:47:32 +0000 diff --git a/debian/control b/debian/control index 10b712f..461bb4a 100644 --- a/debian/control +++ b/debian/control @@ -17,6 +17,7 @@ Build-Depends: automake, libtool, xutils-dev (>= 1:7.5), + libdrm-dev, Standards-Version: 3.8.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-vmware Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-vmware.git commit bda7f2e35c04bd6e398337aa3253e31e25353249 Author: Cyril Brulebois <[email protected]> Date: Tue Apr 6 05:30:50 2010 +0200 New upstream release: 11.0.1 diff --git a/debian/changelog b/debian/changelog index 5874801..6901912 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,12 @@ -xserver-xorg-video-vmware (1:10.16.9-2) UNRELEASED; urgency=low +xserver-xorg-video-vmware (1:11.0.1-1) UNRELEASED; urgency=low + [ Julien Cristau ] * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no good reason. Thanks, Colin Watson! + [ Cyril Brulebois ] + * New upsteam release. + -- Julien Cristau <[email protected]> Sat, 16 Jan 2010 16:47:32 +0000 xserver-xorg-video-vmware (1:10.16.9-1) unstable; urgency=low commit 734e3b2d1dcfe5db07cb19902617fd1212c0c186 Author: Cyril Brulebois <[email protected]> Date: Thu Apr 1 20:49:15 2010 +0200 Fix typo. diff --git a/debian/README.source b/debian/README.source index 34ab4bf..b09a1ab 100644 --- a/debian/README.source +++ b/debian/README.source @@ -25,7 +25,7 @@ just need to be pulled into git.debian.org in a "upstream-*" branch. Otherwise, the upstream sources are manually installed in the Debian git repository. -The .orig.tar.gz upstream source file could be generated this +The .orig.tar.gz upstream source file could be generated using this "upstream-*" branch in the Debian git repository but it is actually copied from upstream tarballs directly. commit cc77a36048863640fb1fa9f82b5b0dbf41326872 Author: Jakob Bornecrantz <[email protected]> Date: Thu Mar 18 15:30:36 2010 +0100 Bump for 11.0.1 release. diff --git a/configure.ac b/configure.ac index ab54623..5b696b5 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-vmware], - 11.0.0, + 11.0.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-vmware) commit a5fb3698a033bfe7789641fd6719d8d4fb054201 Author: Jakob Bornecrantz <[email protected]> Date: Tue Mar 9 08:37:11 2010 +0000 Rework chainloader code to check for vmwgfx userspace driver as well diff --git a/src/vmwaremodule.c b/src/vmwaremodule.c index 5b7d289..d6fcddb 100644 --- a/src/vmwaremodule.c +++ b/src/vmwaremodule.c @@ -38,6 +38,9 @@ #define VMWARE_DRIVER_NAME "vmware" #define VMWGFX_DRIVER_NAME "vmwgfx" #define VMWGFX_MODULE_NAME "vmwgfx" +#define VMWGFX_COMPAT_MAJOR 11 +#define VMWGFX_REQUIRED_MAJOR 11 +#define VMWGFX_REQUIRED_MINOR 0 #define VMWLEGACY_DRIVER_NAME "vmwlegacy" #define VMW_STRING_INNER(s) #s @@ -68,6 +71,7 @@ _X_EXPORT XF86ModuleData vmwareModuleData = { NULL }; +extern XF86ModuleData *VMWGFX_MODULE_DATA; /* * Chain loading functions @@ -79,9 +83,13 @@ vmware_check_kernel_module() /* Super simple way of knowing if the kernel driver is loaded */ int ret = drmOpen(VMWGFX_MODULE_NAME, NULL); if (ret < 0) { - fprintf(stderr, - "%s: Please ignore above \"FATAL: Module %s not found.\"\n", - VMWARE_DRIVER_NAME, VMWGFX_MODULE_NAME); + /* This shouldn't go in the log as the original message does not */ + fprintf(stderr, "%s: Please ignore above \"FATAL: Module %s not found." + "\"\n", VMWARE_DRIVER_NAME, VMWGFX_MODULE_NAME); + /* This is what goes into the log on the other hand */ + xf86DrvMsg(-1, X_PROBED, "%s: Please ignore above \"[drm] failed to " + "load kernel module \"%s\"\"\n", VMWARE_DRIVER_NAME, + VMWGFX_MODULE_NAME); return FALSE; } @@ -91,6 +99,51 @@ vmware_check_kernel_module() } static Bool +vmware_check_vmwgfx_driver(int matched, pointer opts) +{ + int major; int minor; + pointer module; + CARD32 version; + + if (matched) { + xf86DrvMsg(-1, X_PROBED, "%s: X configured to use %s X driver assume " + "who ever did that knows what they are doing\n", + VMWARE_DRIVER_NAME, VMWGFX_DRIVER_NAME); + /* Also how did they end up here, if the configured X to use vmwgfx and + * X should load that driver for that hardware. And since there is only + * one SVGA device this driver shouldn't be loaded. Weird... + */ + return TRUE; + } + + module = xf86LoadOneModule(VMWGFX_DRIVER_NAME, opts); + if (!module) { + xf86DrvMsg(-1, X_ERROR, "%s: Please ignore the above warnings about " + "not being able to to load module/driver %s\n", + VMWARE_DRIVER_NAME, VMWGFX_DRIVER_NAME); + return FALSE; + } + + version = xf86GetModuleVersion(module); + major = GET_MODULE_MAJOR_VERSION(version); + minor = GET_MODULE_MINOR_VERSION(version); + + if (major > VMWGFX_COMPAT_MAJOR || + major < VMWGFX_REQUIRED_MAJOR || + (major == VMWGFX_REQUIRED_MAJOR && minor < VMWGFX_REQUIRED_MINOR)) { + xf86DrvMsg(-1, X_PROBED, "%s: The %s X driver failed version " + "checking.\n", VMWARE_DRIVER_NAME, VMWGFX_DRIVER_NAME); + goto err; + } + + return TRUE; + +err: + /* XXX We should drop the reference on the module here */ + return FALSE; +} + +static Bool vmware_chain_module(pointer opts) { int vmwlegacy_devices; @@ -106,10 +159,15 @@ vmware_chain_module(pointer opts) vmwgfx_devices = xf86MatchDevice(VMWGFX_DRIVER_NAME, NULL); vmwlegacy_devices = xf86MatchDevice(VMWLEGACY_DRIVER_NAME, NULL); - if (vmware_check_kernel_module()) { + if (vmware_check_vmwgfx_driver(vmwgfx_devices, opts) && + vmware_check_kernel_module()) { + xf86DrvMsg(-1, X_INFO, "%s: Using %s X driver.\n", + VMWARE_DRIVER_NAME, VMWGFX_DRIVER_NAME); driver_name = VMWGFX_DRIVER_NAME; - matched = vmwgfx_devices; + matched = 1; } else { + xf86DrvMsg(-1, X_INFO, "%s: Using %s driver everything is fine.\n", + VMWARE_DRIVER_NAME, VMWLEGACY_DRIVER_NAME); driver_name = VMWLEGACY_DRIVER_NAME; matched = vmwlegacy_devices; } commit bf18be6f458a4612b2ebdd8d2b5894f8884891e4 Author: Roland Scheidegger <[email protected]> Date: Tue Mar 9 16:10:25 2010 +0100 fix a cursor refcounting bug, leading to segfaults this is similar to what xf86_use_hw_cursor() does, which is replaced by vmwareUseHWCursor (otherwise, the refcount could reach zero and hence the cursor deallocated while xf86CursorEnableDisableFBAccess() could still bring it back to life from the saved cursor). It is probably insane to do refcounting here, but this needs a xserver fix, and even if that's fixed this fix here shouldn't hurt (though would be unnecessary). diff --git a/src/vmware.h b/src/vmware.h index afefd7f..a3920ab 100644 --- a/src/vmware.h +++ b/src/vmware.h @@ -132,6 +132,7 @@ typedef struct { CARD32* vmwareFIFO; xf86CursorInfoPtr CursorInfoRec; + CursorPtr oldCurs; struct { int bg, fg, x, y; int hotX, hotY; diff --git a/src/vmwarecurs.c b/src/vmwarecurs.c index 017af28..38c5988 100644 --- a/src/vmwarecurs.c +++ b/src/vmwarecurs.c @@ -113,6 +113,12 @@ vmwareUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) { ScrnInfoPtr pScrn = infoFromScreen(pScreen); VMWAREPtr pVMWARE = VMWAREPTR(pScrn); + VmwareLog(("UseHWCursor new cursor %p refcnt %i old cursor %p refcnt %i\n", + pCurs, pCurs->refcnt, pVMWARE->oldCurs, pVMWARE->oldCurs ? pVMWARE->oldCurs->refcnt : 0)); + pCurs->refcnt++; + if (pVMWARE->oldCurs) + FreeCursor(pVMWARE->oldCurs, None); + pVMWARE->oldCurs = pCurs; pVMWARE->hwcur.hotX = pCurs->bits->xhot; pVMWARE->hwcur.hotY = pCurs->bits->yhot; @@ -141,6 +147,13 @@ static Bool vmwareUseHWCursorARGB(ScreenPtr pScreen, CursorPtr pCurs) { ScrnInfoPtr pScrn = infoFromScreen(pScreen); + VMWAREPtr pVMWARE = VMWAREPTR(pScrn); + VmwareLog(("UseHWCursorARGB new cursor %p refcnt %i old cursor %p refcnt %i\n", + pCurs, pCurs->refcnt, pVMWARE->oldCurs, pVMWARE->oldCurs ? pVMWARE->oldCurs->refcnt : 0)); + pCurs->refcnt++; + if (pVMWARE->oldCurs) + FreeCursor(pVMWARE->oldCurs, None); + pVMWARE->oldCurs = pCurs; return pCurs->bits->height <= MAX_CURS && pCurs->bits->width <= MAX_CURS && @@ -286,6 +299,7 @@ vmwareCursorInit(ScreenPtr pScreen) return FALSE; pVMWARE->CursorInfoRec = infoPtr; + pVMWARE->oldCurs = NULL; infoPtr->MaxWidth = MAX_CURS; infoPtr->MaxHeight = MAX_CURS; @@ -332,6 +346,9 @@ vmwareCursorCloseScreen(ScreenPtr pScreen) #endif /* RENDER */ vmwareHideCursor(pScrn); + if (pVMWARE->oldCurs) + FreeCursor(pVMWARE->oldCurs, None); + pVMWARE->oldCurs = NULL; xf86DestroyCursorInfoRec(pVMWARE->CursorInfoRec); } commit 257614ae9bea54d6a46e4477496500a84853ee37 Author: Roland Scheidegger <[email protected]> Date: Tue Mar 9 16:03:59 2010 +0100 make DEBUG_LOGGING compile diff --git a/src/vmware.h b/src/vmware.h index 31560b5..afefd7f 100644 --- a/src/vmware.h +++ b/src/vmware.h @@ -204,7 +204,7 @@ static __inline ScrnInfoPtr infoFromScreen(ScreenPtr s) { /*#define DEBUG_LOGGING*/ #ifdef DEBUG_LOGGING # define VmwareLog(args) ErrorF args -# define TRACEPOINT VmwareLog((__FUNCTION__ ":" __FILE__ "\n")); +# define TRACEPOINT VmwareLog(("%s : %s\n", __FUNCTION__, __FILE__)); #else # define VmwareLog(args) # define TRACEPOINT commit 29f6a2dca3e680908e938767256c9b995653ca7f Author: Jakob Bornecrantz <[email protected]> Date: Sun Mar 7 15:02:39 2010 +0000 Print text about none fatal error message with Fatal in it diff --git a/src/vmwaremodule.c b/src/vmwaremodule.c index c512559..5b7d289 100644 --- a/src/vmwaremodule.c +++ b/src/vmwaremodule.c @@ -37,6 +37,7 @@ #define VMWARE_DRIVER_NAME "vmware" #define VMWGFX_DRIVER_NAME "vmwgfx" +#define VMWGFX_MODULE_NAME "vmwgfx" #define VMWLEGACY_DRIVER_NAME "vmwlegacy" #define VMW_STRING_INNER(s) #s @@ -76,9 +77,13 @@ static Bool vmware_check_kernel_module() { /* Super simple way of knowing if the kernel driver is loaded */ - int ret = drmOpen("vmwgfx", NULL); - if (ret < 0) + int ret = drmOpen(VMWGFX_MODULE_NAME, NULL); + if (ret < 0) { + fprintf(stderr, + "%s: Please ignore above \"FATAL: Module %s not found.\"\n", + VMWARE_DRIVER_NAME, VMWGFX_MODULE_NAME); return FALSE; + } drmClose(ret); commit 204504861a2847734a04bd976accb0c730733523 Author: Jakob Bornecrantz <[email protected]> Date: Fri Feb 26 16:27:17 2010 +0100 Don't hardcode the module version in the source As pointed out by Julien Cristau XORG_RELEASE_VERSION gives us that info from configure.ac. Signed-off-by: Jakob Bornecrantz <[email protected]> diff --git a/src/vmware.c b/src/vmware.c index 426cb64..5e683da 100644 --- a/src/vmware.c +++ b/src/vmware.c @@ -83,14 +83,11 @@ char rcsId_vmware[] = #define VMWARE_NAME "vmwlegacy" #define VMWARE_DRIVER_NAME "vmwlegacy" -#define VMWARE_MAJOR_VERSION 11 -#define VMWARE_MINOR_VERSION 0 -#define VMWARE_PATCHLEVEL 0 #define VMWARE_DRIVER_VERSION \ - (VMWARE_MAJOR_VERSION * 65536 + VMWARE_MINOR_VERSION * 256 + VMWARE_PATCHLEVEL) + (PACKAGE_VERSION_MAJOR * 65536 + PACKAGE_VERSION_MINOR * 256 + PACKAGE_VERSION_PATCHLEVEL) #define VMWARE_DRIVER_VERSION_STRING \ - VMW_STRING(VMWARE_MAJOR_VERSION) "." VMW_STRING(VMWARE_MINOR_VERSION) \ - "." VMW_STRING(VMWARE_PATCHLEVEL) + VMW_STRING(PACKAGE_VERSION_MAJOR) "." VMW_STRING(PACKAGE_VERSION_MINOR) \ + "." VMW_STRING(PACKAGE_VERSION_PATCHLEVEL) static const char VMWAREBuildStr[] = "VMware Guest X Server " VMWARE_DRIVER_VERSION_STRING " - build=$Name$\n"; @@ -194,7 +191,7 @@ static XF86ModuleVersionInfo vmwlegacyVersRec = { MODINFOSTRING1, MODINFOSTRING2, XORG_VERSION_CURRENT, - VMWARE_MAJOR_VERSION, VMWARE_MINOR_VERSION, VMWARE_PATCHLEVEL, + PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, ABI_CLASS_VIDEODRV, ABI_VIDEODRV_VERSION, MOD_CLASS_VIDEODRV, diff --git a/src/vmwaremodule.c b/src/vmwaremodule.c index d46d26d..c512559 100644 --- a/src/vmwaremodule.c +++ b/src/vmwaremodule.c @@ -27,6 +27,9 @@ #include <xf86.h> #include <xf86drm.h> +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif /* * Defines and exported module info. @@ -39,18 +42,11 @@ #define VMW_STRING_INNER(s) #s #define VMW_STRING(str) VMW_STRING_INNER(str) -#define VMWARE_VERSION_MAJOR 11 -#define VMWARE_VERSION_MINOR 0 -#define VMWARE_VERSION_PATCH 0 -#define VMWARE_VERSION_STRING_MAJOR VMW_STRING(VMWARE_VERSION_MAJOR) -#define VMWARE_VERSION_STRING_MINOR VMW_STRING(VMWARE_VERSION_MINOR) -#define VMWARE_VERSION_STRING_PATCH VMW_STRING(VMWARE_VERSION_PATCH) - #define VMWARE_DRIVER_VERSION \ - (VMWARE_VERSION_MAJOR * 65536 + VMWARE_VERSION_MINOR * 256 + VMWARE_VERSION_PATCH) + (PACKAGE_VERSION_MAJOR * 65536 + PACKAGE_VERSION_MINOR * 256 + PACKAGE_VERSION_PATCHLEVEL) #define VMWARE_DRIVER_VERSION_STRING \ - VMWARE_VERSION_STRING_MAJOR "." VMWARE_VERSION_STRING_MINOR \ - "." VMWARE_VERSION_STRING_PATCH + VMW_STRING(PACKAGE_VERSION_MAJOR) "." VMW_STRING(PACKAGE_VERSION_MINOR) \ + "." VMW_STRING(PACKAGE_VERSION_PATCHLEVEL) /* * Standard four digit version string expected by VMware Tools installer. @@ -135,7 +131,7 @@ static XF86ModuleVersionInfo vmware_version = { MODINFOSTRING1, MODINFOSTRING2, XORG_VERSION_CURRENT, - VMWARE_VERSION_MAJOR, VMWARE_VERSION_MINOR, VMWARE_VERSION_PATCH, + PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, ABI_CLASS_VIDEODRV, ABI_VIDEODRV_VERSION, MOD_CLASS_VIDEODRV, commit 667263d9410bd0d5832cf08a2a28841fe6326b84 Author: Jakob Bornecrantz <[email protected]> Date: Thu Feb 18 14:11:32 2010 +0100 Bump major for new chainloading driver diff --git a/configure.ac b/configure.ac index 9099398..ab54623 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-vmware], - 10.16.9, + 11.0.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-vmware) diff --git a/src/vmware.c b/src/vmware.c index 87a4c2b..426cb64 100644 --- a/src/vmware.c +++ b/src/vmware.c @@ -83,9 +83,9 @@ char rcsId_vmware[] = #define VMWARE_NAME "vmwlegacy" #define VMWARE_DRIVER_NAME "vmwlegacy" -#define VMWARE_MAJOR_VERSION 10 -#define VMWARE_MINOR_VERSION 16 -#define VMWARE_PATCHLEVEL 9 +#define VMWARE_MAJOR_VERSION 11 +#define VMWARE_MINOR_VERSION 0 +#define VMWARE_PATCHLEVEL 0 #define VMWARE_DRIVER_VERSION \ (VMWARE_MAJOR_VERSION * 65536 + VMWARE_MINOR_VERSION * 256 + VMWARE_PATCHLEVEL) #define VMWARE_DRIVER_VERSION_STRING \ diff --git a/src/vmwaremodule.c b/src/vmwaremodule.c index 81081fa..d46d26d 100644 --- a/src/vmwaremodule.c +++ b/src/vmwaremodule.c @@ -39,9 +39,9 @@ #define VMW_STRING_INNER(s) #s #define VMW_STRING(str) VMW_STRING_INNER(str) -#define VMWARE_VERSION_MAJOR 10 -#define VMWARE_VERSION_MINOR 16 -#define VMWARE_VERSION_PATCH 9 +#define VMWARE_VERSION_MAJOR 11 +#define VMWARE_VERSION_MINOR 0 +#define VMWARE_VERSION_PATCH 0 #define VMWARE_VERSION_STRING_MAJOR VMW_STRING(VMWARE_VERSION_MAJOR) #define VMWARE_VERSION_STRING_MINOR VMW_STRING(VMWARE_VERSION_MINOR) #define VMWARE_VERSION_STRING_PATCH VMW_STRING(VMWARE_VERSION_PATCH) commit 048fe839f0d761aeba95c324f14bdc5488e9e634 Author: Jakob Bornecrantz <[email protected]> Date: Mon Feb 22 13:20:06 2010 +0100 Link to drm but on for the vmware chainloader driver diff --git a/src/Makefile.am b/src/Makefile.am index 17677f7..0b74eca 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,10 +23,10 @@ -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

